2016-12-06 113 views
0

我有一个股票和StockRecords类与一对多的关系。休眠和java堆空间错误

在Stock.hbm.xml,我有这样的

<bag name="stockRecords" table="stockRecords" inverse="true" lazy="true" 
    fetch="select"> 
<key> 
    <column name="stock_Records" not-null="true" /> 
</key> 
    <one-to-many class="com.my.model.objects.StockRecords" /> 
</bag> 

我在一个时间accesing一个股票定义的集合。这里是

Stockrecords具有一个日提交的(字符串类型),这将平均包含

在它500000个字符在StockRecords.hbm.xml

<property name="summary" type="string" lazy="true" > 
     <column name="summary" /> 
    </property> 

虽然我accesing的一个问题基于ID的股票实体,我试图从该股票的所有股票记录中建立一个所有汇总字段的字符串。我得到java堆空间错误,她把我的jvm设置设置为512m。这是休眠或Java的东西?

冬眠4.XX 的Java 1.7

+0

可能你需要改变512米到1024米。这可能有帮助。 –

回答

1

确保你只要你不需要它了从session.evict(obj) Hibernate的背景下清除实体。否则所有这些实体都会很快填满你的记忆。

如果攻击对您的算法不是问题,您也可以用session.clear()清除整个上下文。

如果这还不够,您应该考虑增加Java堆大小。