从数据库中获取记录时,我得到的误差低于误差,你能不能请任何人帮助我。
获取代码
session = MySessionFactory.getSession();
System.out.println(text);
Query query = session.createQuery("from Visitor where v_firstname =:firstName");
query.setParameter("firstName", text);
System.out.println("ch1---");
return query.list();
Here i got ch1---. It means while fetching records that error is coming.
我将java堆空间也增加到了1024mb, 我正在使用primefaces 4.0 以下是我的日志文件。
提前致谢。
Aug 6, 2014 4:17:14 PM org.primefaces.extensions.component.ajaxerrorhandler.AjaxExceptionHandler handlePartialResponseError
SEVERE: Java heap space
java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.Buffer.getBytes(Buffer.java:207)
at com.mysql.jdbc.Buffer.readLenByteArray(Buffer.java:339)
at com.mysql.jdbc.BufferRow.getColumnValue(BufferRow.java:330)
at com.mysql.jdbc.ResultSetImpl.getBytes(ResultSetImpl.java:1935)
at com.mysql.jdbc.ResultSetImpl.getBytes(ResultSetImpl.java:1913)
at com.mysql.jdbc.ResultSetImpl.getBytes(ResultSetImpl.java:1953)
at org.hibernate.type.AbstractBynaryType.get(AbstractBynaryType.java:101)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:184)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:173)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:105)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2114)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1404)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)
at org.hibernate.loader.Loader.getRow(Loader.java:1230)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)
at org.hibernate.loader.Loader.doQuery(Loader.java:724)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.loadCollection(Loader.java:2019)
at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:59)
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:587)
at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1744)
at org.hibernate.collection.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:476)
at org.hibernate.engine.StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java:867)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:264)
at org.hibernate.loader.Loader.doList(Loader.java:2232)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
答案 0 :(得分:-1)
我的项目中没有错误的代码。
问题是,有那么多废弃(未使用)的对象和列表对象,并且所有列表对象都有这么多记录。我只是清理我的代码,然后重新启动我的系统(服务器)。现在工作正常。
我的建议是不要随时获取总记录,每次都使用延迟加载。如果next不需要任何对象,则为该对象分配null,然后只有垃圾收集器可以工作。