如何在Hibernate中的表中插入值到其他表中?

如何在Hibernate中的表中插入值到其他表中?

问题描述:

我想插入值到一个表的基础上,我已经在其他表上的值。
例如,我们有2个表:
如何在Hibernate中的表中插入值到其他表中?

  1. 用户(列:ID,USER_NAME,CURRENT_BALANCE)
  2. 历史(列:ID,USER_ID,平衡)

所以插入记录时到历史表我想从用户表中取出'current_balance'并插入值和历史表。

这是我的插入语句代码:

Query query = getSession().createSQLQuery("INSERT INTO History (user_id, balance) 
              VALUES (:userId, :balance)"); 
query.setParameter("userId", userIdValue); 
query.setParameter("balance", balanceValue)  
query.executeUpdate(); 

我所需要的,以便采取“CURRENT_BALANCE”从用户表中Hibernate改变?

感谢

嵌套SELECT查询应该很好地工作:

Query query = getSession().createSQLQuery("INSERT INTO History (user_id, balance) 
              VALUES (:userId, (SELECT current_balance FROM Users WHERE id = :userId))"); 
query.setParameter("userId", userIdValue); 
query.executeUpdate(); 

这是修改过的例子(SQL)的版本。你提到你想通过HQL做到这一点?如果是这种情况,我不确定这是可能的,因为HQL仅支持INSERT INTO ... SELECT而不支持INSERT INTO ... VALUES,请参阅this * question