Far*_*san 11 java hibernate jpa jpa-2.0
我正在使用版本3.6.1.Final
我的实体bean中有以下属性
@JoinColumn( name = "FOLDER_PARENT_ID", referencedColumnName = "FOLDER_ID" )
@ManyToOne(cascade=CascadeType.MERGE, fetch= FetchType.LAZY )
private FolderTbl parent;
Run Code Online (Sandbox Code Playgroud)
在我的单元测试中,Assertnull失败,因为getParent()不为null
assertNull( folderTbl.getParent() );
Run Code Online (Sandbox Code Playgroud)
还有什么办法可以阻止hibernate加载父进程?
Aru*_*hny 10
即使将lazy设置为true,父值也不会为null.延迟加载使用代理对象并将其分配给父属性.当我们尝试使用父(调用getParent())时,它将使用代理对象加载实际的父对象.
如果您不想加载对象,请不要为该项配置JPA属性并将其设置为瞬态.
父正确配置为懒惰加载,关键是您正在错误地测试它.
Hibernate将在您调用方法getParent()时加载对象,当对实际对象的请求到来时它将加载.
您可以通过配置show_sql为true 来检查此事.它会在您调用时调用查询 getParent()
| 归档时间: |
|
| 查看次数: |
13165 次 |
| 最近记录: |