我有这两个表,并且想要映射userName字段,以便我只能查询特定用户的消息。我该怎么办?
@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;
}
应该在用户名之间进行映射。
答案 0 :(得分:0)
只需在当前实体类中添加另一个实体,jpa就会使用主键自动映射您的实体类。
@Entity
public class User {
@Id
private String userName;
private Message message;
}
答案 1 :(得分:0)
您需要使用@ManyToOne
根据您的关系添加@OneToMany
或@JoinColumn
映射,如下所示。
@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;
}