使用hibernate的createQuery出现堆栈溢出,一般出现该错误是递归层数太多,但是我的数据结构不复杂啊?调用以下该方法时就出现堆溢出错误,但是后台未能打出其它log,但是如果改成jdbc就没问题了。这个问题很郁闷呀?这是使用hibernate的方法:
public List getJobcategory() throws IBSSException {
String hql = "from Jobcategory where parentjobcategoryid is null order by jobcategoryid";
List list = null;
try {
list = session.createQuery(hql).list();
} catch (HibernateException he) {
// he.printStackTrace();
he.printStackTrace();
} finally {
try {
HibernateUtil.closeSession();
} catch (Exception e) {
e.printStackTrace();
}
}
return list;
}Hibernate的配置文件<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.ibss.common.po.Jobcategory" table="JOBCATEGORY" >
<id name="jobcategoryid" type="java.lang.Long">
<column name="JOBCATEGORYID" />
<generator class="assigned" />
</id>
<many-to-one name="jobcategory" class="com.ibss.common.po.Jobcategory" update="false" insert="false">
<column name="JOBCATEGORYID" not-null="false" unique="true" />
</many-to-one>
<property name="jobcategoryname" type="java.lang.String">
<column name="JOBCATEGORYNAME" length="40" />
</property>
<property name="description" type="java.lang.String">
<column name="DESCRIPTION" length="80" />
</property>
<property name="parentjobcategoryid" type="java.lang.Long">
<column name="PARENTJOBCATEGORYID"/>
</property>
<set name="jobspecs" inverse="true" order-by="jobspecid ASC">
<key>
<column name="JOBCATEGORYID" />
</key>
<one-to-many class="com.ibss.common.po.Jobspec" />
</set>
<set name="jobcategories" inverse="true" order-by="jobcategoryid ASC">
<key>
<column name="PARENTJOBCATEGORYID" not-null="true" unique="true" />
</key>
<one-to-many class="com.ibss.common.po.Jobcategory" />
</set>
</class>
</hibernate-mapping>
public List getJobcategory() throws IBSSException {
String hql = "from Jobcategory where parentjobcategoryid is null order by jobcategoryid";
List list = null;
try {
list = session.createQuery(hql).list();
} catch (HibernateException he) {
// he.printStackTrace();
he.printStackTrace();
} finally {
try {
HibernateUtil.closeSession();
} catch (Exception e) {
e.printStackTrace();
}
}
return list;
}Hibernate的配置文件<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.ibss.common.po.Jobcategory" table="JOBCATEGORY" >
<id name="jobcategoryid" type="java.lang.Long">
<column name="JOBCATEGORYID" />
<generator class="assigned" />
</id>
<many-to-one name="jobcategory" class="com.ibss.common.po.Jobcategory" update="false" insert="false">
<column name="JOBCATEGORYID" not-null="false" unique="true" />
</many-to-one>
<property name="jobcategoryname" type="java.lang.String">
<column name="JOBCATEGORYNAME" length="40" />
</property>
<property name="description" type="java.lang.String">
<column name="DESCRIPTION" length="80" />
</property>
<property name="parentjobcategoryid" type="java.lang.Long">
<column name="PARENTJOBCATEGORYID"/>
</property>
<set name="jobspecs" inverse="true" order-by="jobspecid ASC">
<key>
<column name="JOBCATEGORYID" />
</key>
<one-to-many class="com.ibss.common.po.Jobspec" />
</set>
<set name="jobcategories" inverse="true" order-by="jobcategoryid ASC">
<key>
<column name="PARENTJOBCATEGORYID" not-null="true" unique="true" />
</key>
<one-to-many class="com.ibss.common.po.Jobcategory" />
</set>
</class>
</hibernate-mapping>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货