如何在 JPA Spring Boot 中映射主键和外键等两个表?
How to map two tables like primary key and foreign key in JPA Springboot?
我有这两个表,想映射用户名字段,以便我只能查询特定用户的消息。我该怎么做?
@Entity
public class User {
@Id
private String userName;
}
@Entity(name = "message")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID messageID;
String message;
String userName;
Long timeStamp;
boolean isSent;
}
映射应该在用户名之间完成。
只需在当前实体 class 中添加另一个实体,jpa 会使用主键自动映射您的实体 classes。
@Entity
public class User {
@Id
private String userName;
private Message message;
}
您需要使用 @JoinColumn
根据您的关系添加 @ManyToOne
或 @OneToMany
映射,如下所示。
@Entity
public class User {
@Id
private String userName;
@OneToMany
@JoinColumn(name = "userName", referencedColumnName = "userName")
List<Message> messages;
}
@Entity(name = "message")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID messageID;
String message;
String userName;
Long timeStamp;
boolean isSent;
}
我有这两个表,想映射用户名字段,以便我只能查询特定用户的消息。我该怎么做?
@Entity
public class User {
@Id
private String userName;
}
@Entity(name = "message")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID messageID;
String message;
String userName;
Long timeStamp;
boolean isSent;
}
映射应该在用户名之间完成。
只需在当前实体 class 中添加另一个实体,jpa 会使用主键自动映射您的实体 classes。
@Entity
public class User {
@Id
private String userName;
private Message message;
}
您需要使用 @JoinColumn
根据您的关系添加 @ManyToOne
或 @OneToMany
映射,如下所示。
@Entity
public class User {
@Id
private String userName;
@OneToMany
@JoinColumn(name = "userName", referencedColumnName = "userName")
List<Message> messages;
}
@Entity(name = "message")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID messageID;
String message;
String userName;
Long timeStamp;
boolean isSent;
}