Hibernate Can´;t仅更新父级,休眠
您好:我是hibernate新手,我正在尝试加载数据库中已经存在的订单,更改字段,然后更新订单,但遇到以下异常:“org.hibernate.exception.LockTimeoutException:无法执行语句”。(必须说明我不会更改订单的行) 休眠映射: Order.hbm.xmlHibernate Can´;t仅更新父级,休眠,hibernate,Hibernate,您好:我是hibernate新手,我正在尝试加载数据库中已经存在的订单,更改字段,然后更新订单,但遇到以下异常:“org.hibernate.exception.LockTimeoutException:无法执行语句”。(必须说明我不会更改订单的行) 休眠映射: Order.hbm.xml <hibernate-mapping package="com.Pojos"> <class name="Order" table="Order"> <i
<hibernate-mapping package="com.Pojos">
<class name="Order" table="Order">
<id name="idOrder" type="int" column="idOrder">
<generator class="org.hibernate.id.enhanced.SequenceStyleGenerator">
<param name="sequence_name">Order_SEQ</param>
<param name="initial_value">1</param>
<param name="increment_size">1</param>
<param name="value_column">CurrentValue</param>
<param name="optimizer">hilo</param>
</generator>
</id>
<property name="date"/>
<many-to-one name="client" column="idClient" class="Clients"/>
<list name="orderLines" table="OrderLines">
<key column="idOrder"/>
<index column="idx"/>
<one-to-many class="OrderLines"/>
</list>
</class>
</hibernate-mapping>
订单如下
1.
1.
当前值
希洛
OrderLines.hbm.xml
<hibernate-mapping package="com.Pojos">
<class name="OrderLines" table="OrderLines">
<id name="idOrderLine" type="int" column="idOrderLine">
<generator class="increment"/>
</id>
<many-to-one name="order" column="idOrder" not-null="true"/>
</class>
</hibernate-mapping>
注意:当我创建新订单时,添加一些行并保存它,我没有问题
我做错了什么?您必须在SQL工具中执行了一个查询,该查询也修改了此行,但尚未执行
commit
,因此一直锁定该行。但是在哪里?因为这是我执行的唯一代码。你确定没有打开IDE或其他允许手动执行查询的工具吗?你的应用程序之前的执行是否仍在运行,或者是否在断点处被阻止?你是对的,我在另一个进程中打开了一个会话以获取hql的订单,但我从未关闭过它。谢谢,在你的帮助下,我解决了这个问题。
<hibernate-mapping package="com.Pojos">
<class name="OrderLines" table="OrderLines">
<id name="idOrderLine" type="int" column="idOrderLine">
<generator class="increment"/>
</id>
<many-to-one name="order" column="idOrder" not-null="true"/>
</class>
</hibernate-mapping>