如何在Hibernate中的表中插入值到其他表中?
问题描述:
我想插入值到一个表的基础上,我已经在其他表上的值。
例如,我们有2个表:
如何在Hibernate中的表中插入值到其他表中?
- 用户(列:ID,USER_NAME,CURRENT_BALANCE)
- 历史(列: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。