如何使用实体管理器获得懒惰字段? 这里是我的代码片段如何获得休眠状态下的懒惰字段
public class Internet implements Serializable{
int id;
// related fields
@ManyToOne (fetch=FetchType.LAZY)
Browsers brow;
//related public getters and setters.
}
这是我的浏览器的Hibernate类;现在
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.
}
我的要求是,我想浏览器的名字时,我使用使用Internet.id EntityManger的查找方法获取浏览器的实例。
这两个类在不同的包中。所以我无法直接访问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();
这就是我如何用我的代码,但我看不出任何区别。
感谢SiB,我看到了,但我没有更多关注。 – Pesula
我注释这个字段就像在我的Internet类浏览器中一样是Lazy。当我检查**互联网object.Browser对象的值。名**,我得到正确的价值,但是当我得到与** getters **相同的对象的价值,我得到另一个值。对于懒惰或我对概念的理解很差,这有什么关系吗? – Pesula