News news =(News) this.getHibernateTemplate().get(News.class, id);
仅仅是取得数据;
this.getHibernateTemplate().load(Entity,id)
这个是覆盖。谢谢!
仅仅是取得数据;
this.getHibernateTemplate().load(Entity,id)
这个是覆盖。谢谢!
解决方案 »
- tomcat 修改一个类都要重新加载一次工程,请看
- jfreechart 占用CPU过高,如何解决啊
- WEBLOGIC,HPUNIX, 正常启动,但停止时报错. Exception in thread "main" java.net.UnknownHostException
- struts+Spring+hibernate整合问题
- <ww:iterator>怎样迭代显示Set
- 一个C和JAVA通信(通过SOCKET)的问题
- JNDI的问题[TOMCAT]
- J2EE配置环境,怎么搞D,只显示帮助
- j2ee有那些好书
- j2ee应该怎么学起!
- 【高分请教】一个挠头的hibernate关系问题!
- 一个奇怪的问题
那我这样理解。
{
News news;
public News find(){
return news=this.getHibernateTemplate().load(Entity,id);
}
}
是从数据库中根据ID读取值,然后返回覆盖news,然后返回news,应该也可以达到相同的效果啊?
还是我对覆盖理解的不正确?
load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。其区别在于: 1. 如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。
2. Load方法可返回实体的代理类实例,而get方法永远直接返回实体类。
3. load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。
跟this.getHibernateTemplate().load()
如果查找数据库中存在的数据时是一样。
当用load()方法查找数据库中没有的方法时会抛出异常
而get()方法不会,它返回null
2.get()方法使用立即加载的方式发送sql语句,并得到已经初始化的对象,而load方法则根本不发送sql语句,它返回一个代理对象,直到这个对象被访问时,此代理对象才被初始化