【发布时间】:2016-06-27 05:06:52
【问题描述】:
我有两个休眠注释类。我正在对 FirstTable 进行休眠查询。从列表中检索数据后,使用 GSON 将对象转换为 JSON 字符串。转换后的 JSON 字符串还将包含子表的数据。我的要求是读取一级数据。它不应该查询子表。
尝试的步骤
为了在获取对象后实现这一点,我已将对象与 entitymanager 分离(也尝试过 session.evict)。关闭休眠会话和实体管理器对象。试图将对象转换为 JSON。这样做时,我得到了 LazyInitializationException。是否有解决方法或有其他方法可以实现这一点。
@Entity(name = "FirstTable")
@Table(name = "FirstTable")
@AccessType("property")
public class FirstTable {
private SecondTable _SecondTable;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "SecondTable_ID")
public SecondTable getSecondTable() {
return _SecondTable;
}
public FirstTable setSecondTable(SecondTable value) {
this._SecondTable = value;
return this;
}
private long id;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="Id")
public long getId() {
return id;
}
public void setId(long id) {
this.id=id;
}
}
@Entity(name = "SecondTable")
@Table(name = "SecondTable")
@AccessType("property")
public class SecondTable {
private String _RandomCol;
@Column(name="RandomCol")
public java.lang.String getRandomCol() {
return _RandomCol;
}
public SecondTable setRandomCol(java.lang.String value) {
this._RandomCol = value;
return this;
}
private long id;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="OId")
public long getId() {
return id;
}
public void setId(long id) {
this.id=id;
}
}
【问题讨论】: