實現一對多的關係,選擇父母和孩子 我有一個onetomany
關係,我想要做一個查詢(SELECT *)JPA:選擇父母和孩子與一對多relatinships
Folders.java
@Entity
@Table(name = "FOLDERS")
public class Folders implements Serializable {
@Id
@Column(name = "id")
Long id;
@ManyToOne
@JoinColumn(name = "Folder_Author", insertable=false, updatable=false)
private Authors author;
// Getter + setter
}
Authors.java
@Entity
@Table(name = "AUTHORS")
public class Authors implements Serializable {
@Id
@Column(name = "id")
Long id;
@OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.PERSIST)
@JoinColumn(name = "Folder_Author", referencedColumnName = "id", nullable=false)
private List<Folders> folders = new ArrayList<Folders>();
}
我的要求:
Query query = em.createQuery("SELECT f FROM Folders f");
return query.getResultList();
我得到了這樣的結果:
[
{
"id":29,
"noFolder":"0017",
"author":{
"id":9,
"name":"Alpha",
"service":null,
"folders":[
{"id":29,
"noFolder":"0017",
"author":{
"id":9,
"name":"Alpha",
"service":null,
"folders":[
{
"id":29,
"noFolder":"0017",
"author":{
"id":9,
"name":"Alpha",
"service":null,
"folders":[
..
..
}
]
什麼是錯在我的代碼?什麼是當我執行查詢,我得到這個結果的問題..我想得到這樣的結果
[
{
"id":29,
"noFolder":"0017",
"author":{
"id":9,
"name":"Alpha",
"service":null,
}
}
]
你的意思是你想要的1-N場是懶加載,並且將它設置爲EAGER? –
是的你是對的,但是當我試着懶時我得到這個錯誤:'引起:org.hibernate.LazyInitializationException:未能懶惰地初始化一個角色集合:business.entities.folders.Authors.folders,無法初始化代理 - 沒有會議 \t在rg.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:587) \t在' .. – user1814879
也是'OneToMany'需要一個指定的mappedBy雙方聯繫起來。 –