如何在 Spring 数据 JPA 中为以下场景创建实体关系?
How to create entity relationship for following scenario in Spring data JPA?
@Entity
public class A {
@column("ID")
private Long id;
}
@Entity
public class B {
@column("ID")
private Long id;
}
@Entity
public class C {
@column("ID")
private Long id;
@column("A_ID")
private Long aID;
@column("B_ID")
private Long bID;
}
在 C 实体中以下插入是可能的
ID A_ID B_ID
1 1 1
2 2 1
3 3 1
4 1 2
5 2 2
6 3 2
在上述情况下,我想从子实体 (C) 获取父实体 (A 或 B)
例如
C c=crepository.findByID(6);
A a=c.getA();
B b=c.getB();
如何在上述实体中创建关系?
我希望使用 Spring 数据 JPA 可以实现。
像这样利用 @OneToOne
注释应该做到这一点:
@Entity
public class A {
@Column("ID")
private Long id;
//other columns, getters, and setters
}
@Entity
public class B {
@Column("ID")
private Long id;
//other columns, getters, and setters
}
@Entity
public class C {
@column("ID")
private Long id;
@OneToOne
@JoinColumn(name = "A_ID", referencedColumnName = "ID")
private A a;
@OneToOne
@JoinColumn(name = "B_ID", referencedColumnName = "ID")
private B b;
//other columns, getters, and setters
}
@Entity
public class A {
@column("ID")
private Long id;
}
@Entity
public class B {
@column("ID")
private Long id;
}
@Entity
public class C {
@column("ID")
private Long id;
@column("A_ID")
private Long aID;
@column("B_ID")
private Long bID;
}
在 C 实体中以下插入是可能的
ID A_ID B_ID
1 1 1
2 2 1
3 3 1
4 1 2
5 2 2
6 3 2
在上述情况下,我想从子实体 (C) 获取父实体 (A 或 B)
例如
C c=crepository.findByID(6);
A a=c.getA();
B b=c.getB();
如何在上述实体中创建关系? 我希望使用 Spring 数据 JPA 可以实现。
像这样利用 @OneToOne
注释应该做到这一点:
@Entity
public class A {
@Column("ID")
private Long id;
//other columns, getters, and setters
}
@Entity
public class B {
@Column("ID")
private Long id;
//other columns, getters, and setters
}
@Entity
public class C {
@column("ID")
private Long id;
@OneToOne
@JoinColumn(name = "A_ID", referencedColumnName = "ID")
private A a;
@OneToOne
@JoinColumn(name = "B_ID", referencedColumnName = "ID")
private B b;
//other columns, getters, and setters
}