嗨我对这个输入标题的内容感到困惑,因为我第一次使用这个, 好的,正确的 我在双向
中都有经销商映射和DealerData<hibernate-mapping>
<class name="sk.bantip.hotel.server.dao.book.DealerData" table="book_dealerData" >
<id column="idBook_dealerData" name="id" type="java.lang.Long">
<generator class="identity" />
</id>
<property name="name" not-null="true" />
<property name="registration" not-null="true"/>
<property name="taxNumber" not-null="true" />
<property name="timestamp" not-null="true" />
<property name="authorUserId" column="idAuthor" not-null="true" update="false"/>
<many-to-one name="dealer" column="idBook_dealer"
not-null="true" class="sk.bantip.hotel.server.dao.book.Dealer" update="false"/>
<property name="channel" not-null="false" update="false">
<type name="sk.bantip.core.enums.GenericEnumUserType">
<param name="enumClass">sk.bantip.hotel.server.dao.book.Channel</param>
<param name="identifierMethod">getValue</param>
<param name="valueOfMethod">getByCode</param>
</type>
</property>
<property name="street" not-null="false"/>
<property name="number" not-null="false" />
<property name="zip" not-null="false" />
<property name="city" not-null="false" />
<property name="country" not-null="false" />
<property name="telephone" not-null="false" />
<property name="email" not-null="false" />
</class>
这是一个经销商映射
<hibernate-mapping>
<class name="sk.bantip.hotel.server.dao.book.Dealer" table="book_dealer" >
<id column="idBook_dealer" name="id" type="java.lang.Long">
<generator class="identity" />
</id>
<many-to-one name="domain" column="idMain_domain"
not-null="true" class="sk.bantip.hotel.server.dao.main.Domain" />
<many-to-one name="activeData" column="idBook_dealerData"
class="sk.bantip.hotel.server.dao.book.DealerData" cascade="save-update"/>
<set name="historyData" inverse="true">
<key column="idBook_dealer" />
<one-to-many class="sk.bantip.hotel.server.dao.book.DealerData" />
</set>
<property name="status" not-null="false" />
</class>
问题是当我尝试更新例如单not-null="false"
值而不是发生其他not-null="true"
值不能为空的堆栈跟踪时,这意味着hibernate尝试更新也是未修改的字段,所以我尝试{{1但看起来不行仍然尝试重写未修改的值。在某处,我读到这不适用于分离对象,仅在会话中,
我不确定我是否使用我的代码使用分离对象或会话,因为我使用了一些我自己不写的DAO方法,因为我对此感到困惑,但也发现dynamic-update="true"
但是不知道这个,你能不能解释一下这种情况下是否有用?
所以我要求hibernate在这种状态下更新值(例如'name'):
select-before-update=true
但SQL修改所有这些:
Hibernate:
update
book_dealerData
set
name=?,
where
idBook_dealerData=?
如果有人知道这个,请留下一个帖子我会很感激我也可以提供更多信息(更新方法等),如果需要的话,谢谢你到目前为止 欢呼声
答案 0 :(得分:3)
希望其中一些有用。