我想根据我在其他表上的值将值插入一个表。
例如,我们有2个表:
因此,当将记录插入History表时,我想从Users表中获取'current_balance'并插入值和History表。
这是我的插入语句代码:
Query query = getSession().createSQLQuery("INSERT INTO History (user_id, balance)
VALUES (:userId, :balance)");
query.setParameter("userId", userIdValue);
query.setParameter("balance", balanceValue)
query.executeUpdate();
为了从Hibernate
中的Users表中获取'current_balance',我需要更改哪些内容?
感谢
答案 0 :(得分:1)
嵌套的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 StackOverflow question。