下面是我的桌子设计.谁能解释我如何使用spring data jpa配置我的实体?
PARENT_TABLE(
id primary key,
name
)
SECOND_CHILD_TABLE(
id primary key,
second_child_name,
parent_id references id on parent_table,
first_child_id references id on first_child_table
)
FIRST_CHILD_TABLE(
id primary key,
first_child_name,
parent_id references id on parent_table
)
解决方法:
@Entity
@Table(name="parent_table")
public class Parent {
@Id
@Column(name="ID", nullable=false, unique=true)
// Require Generator config
private Long id;
@Column(name="NAME", nullable=false)
private String name;
@OneToMany(orphanRemoval = true, cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@JoinColumn(name = "candidacy_id", nullable = false)
@Getter
@Setter
private List firstChild = new ArrayList<>();
@OneToMany(orphanRemoval = true, cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@JoinColumn(name = "candidacy_id", nullable = false)
@Getter
@Setter
private List secondChild = new ArrayList<>();
}
@Entity
@Table(name="first_child_table")
public class FirstChild {
@Id
@Column(name="ID", nullable=false, unique=true)
// Require Generator config
private Long id;
@Column(name="FIRST_CHILD_NAME", nullable=false)
private String name;
@ManyToOne
@JoinColumn(name="parent_id", referencedColumnName="ID")
private Parent parent;
}
@Entity
@Table(name="second_child_table")
public class SecondChild {
@Id
@Column(name="ID", nullable=false, unique=true)
// Require Generator config
private Long id;
@Column(name="SECOND_CHILD_NAME", nullable=false)
private String name;
@ManyToOne
@JoinColumn(name="parent_id", referencedColumnName="ID")
private Parent parent;
}
而对于存储库
@Repository
public interface ParentRepository extends CrudRepository {
}
标签:java,spring,spring-data-jpa,jpa,hibernate
来源: https://codeday.me/bug/20190830/1769968.html