我有休眠问题。我有 2 个具有以下配置的实体:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class table="Activity" name="com.encima.comp.activity.AbstractActivity">
<cache usage="read-write"/>
<id access="property" name="id">
<generator class="sequence">
<param name="sequence">activity_seq</param>
</generator>
</id>
<set fetch="join" access="property" lazy="false" cascade="all" name="activitiesFromPackage">
<key column="activity"/>
<one-to-many class="com.encima.comp.activity.ActivityFromPackage"/>
</set>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class table="activityfrompackage" name="com.encima.comp.activity.ActivityFromPackage">
<cache usage="read-write"/>
<id access="property" name="id">
<generator class="sequence">
<param name="sequence">activityfrompackage_seq</param>
</generator>
</id>
<many-to-one column="activity" access="property" cascade="none" name="activity"/>
</class>
</hibernate-mapping>
Activity和ActivityFromPackage是多对一的关系
有时,我得到这个错误:
Unable to find com.encima.comp.activity.ActivityFromPackage with id 246517
那个Id不存在。数据库中没有具有该 ID 的 ActivityFromPackage。我不知道那个身份证号码是从哪里来的。
当我尝试加载与
ActivityFromPackage
相关的实体或使用活动时出现问题。但问题是,我并不总是收到错误,它偶尔会发生。
例如,我有一些日志在这些行中引发错误:
(Hotel) HibernateUtil.currentSession().load(Hotel.class, legacyRoom.getHotel().getId());
酒店有很多活动,一个活动有很多ActivityFromPackage。
或在这里:
AbstractActivity activity = (AbstractActivity) HibernateUtil.currentSession().load(AbstractActivity.class, compId);
activity.setActiveLang(lang);
也在这里:
activity.getRateplancode_price_sale_facturation()
有人知道会发生什么吗?非常感谢!