我有这个模型,只有两个实体,一个用于键的可嵌入实体和一个将该键作为 id 字段的实体。
我想知道,如何编写简单的查询,例如“给我一个 id 为 5 的人的所有功能”或“给我一个名为 Somebody 的人的所有功能”。
当有可嵌入密钥时,我不明白如何访问这些信息......
我对重写我的模型犹豫不决,因为我将不得不围绕代码重写大量的东西。
我什至如何从该关联表中删除一些东西?我只是真的不知道我应该采取哪种“方式”来解决这个问题。
谢谢各位大佬的指点
@Entity
@Table(name = "PERSON")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "person_id")
private Long id;
@Column(name = "name", unique = true)
private String name;
// .. getters and setters
@Entity
@Table(name = "FUNC")
public class Function {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "function_id")
private Long id;
@Column(name = "name")
private String name;
// .. getters and setter
@Embeddable
public class PersonFunctionPK {
@Column(name = "person_id")
private Long personId;
@Column(name = "function_id")
private Long functionId;
public PersonFunctionPK() {
}
PersonFunctionPK(Long personId, Long functionId) {
this.personId = personId;
this.functionId = functionId;
}
// .. getters and setter
@Entity
@Table(name = "PERSON_FUNC")
public class PersonFunction {
@EmbeddedId
protected PersonFunctionPK personFunctionPK;
public PersonFunction() {}
public PersonFunction(PersonFunctionPK personFunctionPK) {
this.personFunctionPK = personFunctionPK;
}
public PersonFunction(Long personId, Long functionId) {
this.personFunctionPK = new PersonFunctionPK(personId, functionId);
}
// .. getters and setter for personFunctionPK