我有简单的表格:
CREATE TABLE MyTable (
id INTEGER PRIMARY KEY NOT NULL ,
A_id INTEGER NOT NULL,
B_id INTEGER NOT NULL ,
FOREIGN KEY (B_id) REFERENCES tableB (B_id),
FOREIGN KEY (A_id) REFERENCES tableA (A_id)
);
我也有实体
@Entity
@Table(name = "MyTable")
public class MyTableEntity
{
private Long id;
private Long A_Id;
// private Long B_Id;
private List<B_Entity> list_of_b_elements;
@Id
@Column(name = "id")
public Long getId() {
return id;
}
public void setId(Long Id) {
this.Id = Id;
}
@Basic
@Column(name = "A_id")
public Long getA_Id() {
return A_Id;
}
public void setA_Id(Long A_Id) {
this.A_Id = A_Id;
}
@OneToMany(
cascade = CascadeType.ALL,
orphanRemoval = true,
fetch = FetchType.LAZY)
public List<B_Entity> getList_of_b_elements() {
return list_of_b_elements;
}
public void setList_of_b_elements(List<B_Entity> list_of_b_elements) {
this.list_of_b_elements = list_of_b_elements;
}
}
我希望以这种方式获取MyTableEntity对象:
MyTableEntity:
A_id << ------- for example 32
List<B_Entity> << ----- for example B_1, B_2, B_3 elements
或者这样:
MyTableEntity:
A_id << ------- for example 32
B_Entity << ----- B_1
A_id << ------- for example 32
B_Entity << ----- B_2
A_id << ------- for example 32
B_Entity << ----- B_3
这是我的DAO功能,我有A_id:
List<MyTableEntity> getMyTableEntityByA_Id( Long a_Id)
{
List<MyTableEntity> myTableEntityList = (List<MyTableEntity>) getCriteria()
.add(Restrictions.eq("A_Id", a_Id))
.setFetchMode("list_of_b_elements", FetchMode.JOIN)
.list();
return myTableEntityList;
}
我想只在一个dircetion中实现这个目标(A_Entity和B_Entity不知道这个)。 它现在不起作用。我的DAO功能的结果是具有良好A_Id的MyTableEntity对象,但我没有得到list_of_b_elements。 有人可以帮我,告诉我问题出在哪里以及如何实现这个目标?
我认为我的部分问题与getList_of_b_elements()。
有关