Hibernate 尝试检索具有不存在的 Id 的实体关系

问题描述 投票:0回答:0

我有休眠问题。我有 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()

有人知道会发生什么吗?非常感谢!

java hibernate jpa orm foreign-keys
© www.soinside.com 2019 - 2024. All rights reserved.