如何使用实体管理器获取惰性字段?这是我的代码片段
public class Internet implements Serializable{
int id;
// related fields
@ManyToOne (fetch=FetchType.LAZY)
Browsers brow;
//related public getters and setters.
}
这是我的浏览器休眠类;
public class Browser implements Serializable{
int id;
String name;
//and some other useful fields.
//here public getters and setters.
public String getName(){
return name;
}
public void setName(String name){
this.name = name
}
//and few more.
}
现在我的要求是,当我使用 EntityManger 的使用 Internet.id 的查找方法获取浏览器实例时,我想要浏览器的名称。
这两个类在不同的包中。所以我无法直接访问 browser.name。我想要浏览器的名称。当我调试我的程序 browser.name 为空。有什么方法可以使用 EntityManager 获取 browser.name 的值。
我读了几篇与这个问题相关的帖子,但我没有得到任何线索。任何机构都可以帮助我。
这是我的代码如何使用我的页面和几件事:
InternateObjectUsingPage usingPage = (InternateObjectUsingPage)pageWithName(InternateObjectUsingPage.class.getName());
_em = EntityManager.createEntityManager();
Internet ipReg = _em.find(Internet.class, _currentRow.getIpRegId()) ; // _currentRow.getInRegId() is id.
ipReg.getBrowser(); // recently i added as per the suggestion.
if(ipReg != null){
_refresh = true;
usingPage.setInternet(ipReg);
return usingPage;
}
_em.close();
这就是我使用我的代码的方式,但我看不出有任何区别。