Hibernate每次返回一个List集合或者一条实体信息的时候总是读取全部数据,这样的方式会耗掉太多内存,怎样才能不读出全部数据,而是我需要哪些就读取哪些呢?
比如有一个类User,我在读取这个类在数据库中数据,只需要name和pass两个字段的数据,我的HQL语句如下:
SELECT e.name,e.pass FROM User u
然后将其封装在一个List<Object[]>集合中,这样也能达到我的目的,或者创建一个构造方法,采用构造赋值的方式。
除了这两种方式,还有没有更好的方式呢?请大家说说!
比如有一个类User,我在读取这个类在数据库中数据,只需要name和pass两个字段的数据,我的HQL语句如下:
SELECT e.name,e.pass FROM User u
然后将其封装在一个List<Object[]>集合中,这样也能达到我的目的,或者创建一个构造方法,采用构造赋值的方式。
除了这两种方式,还有没有更好的方式呢?请大家说说!
配置二级缓存,这样的话第一次查出来的数据会放到二级缓存中,当你再次要查这个数据时它会先到一级缓存中去找,如果一级缓存关闭或在一级缓存中找不到的话就再到二级缓存中去找,在二级缓存中找到了就返回,就不会发出sql到数据库中去查了,这样的话效率会有所提高。
普通配置文件是<property name="text" length="2000" lazy="true"/>