我的hibernate版本控制是在没有明显原因的情况下发布更新语句。
在我的BankAccount映射文件中:
<version type="dbtimestamp" name="modified" column="Modified"/>
在AvailableBalance映射文件中:
<many-to-one name="bankAccount" class="model.businessdomain.orm.BankAccount" fetch="select" >
<column name="BankAccountId" not-null="true" />
</many-to-one>
从AvailableBalance表(通过函数)完成select时发出的sql语句:
17:12:16,152 DEBUG SQL:401 - select * from dbo.get_availablebalancelist(?) ab where ab.bankAccountId = ?
17:12:31,539 DEBUG SQL:401 - select current_timestamp
17:12:31,625 DEBUG SQL:401 - update dbo.BankAccount set Modified=?, BankAccountTypeId=?, BankID=?, InterestSchemeID=?, BankAccNo=?, SysParamID=?, BankAccName=?, BranchCode=?, UserRef=?, CAMSCode=?, Provision=?, ProvisionPerc=?, OverDraftLimit=?, isIslamic=?, Active=? where BankAccountId=? and Modified=?
答案 0 :(得分:0)
选择后,对象是否在内存中以任何方式被修改?如果对象标记为脏,则根据您的事务策略,可能正在发生可能隐式更新数据库的提交。
答案 1 :(得分:0)
更新的原因很可能不在您发布的代码中。
要调试它,您可以在日志工具中设置一个断点,并查看发出此语句的堆栈。