![](/img/trans.png)
[英]Wildfly/Hibernate query result fails to return persisted entity
[英]Return Hibernate entity on UPDATE query
我正在嘗試使用hibernate進行簡單的SQL UPDATE查詢,並將結果行映射到Hibernate實體(使用createSQLQuery
)。
String updateQuery =
String.format("UPDATE \"user\" "
+ "SET chips_balance=chips_balance + %d, diamonds_balance=diamonds_balance + %d "
+ "WHERE id=%d", chips_delta, diamonds_delta, userId);
User user = (User)session.createSQLQuery(updateQuery).uniqueResult();
這將引發異常:
org.hibernate.exception.GenericJDBCException: could not extract ResultSet
原因:
org.postgresql.util.PSQLException: No results were returned by the query.
我該如何進行這項工作? (使用RETURNING
關鍵字)
這是實現它的方法:
String updateQuery =
String.format( "UPDATE \"user\" "
+ "SET chips_balance=chips_balance + %d, diamonds_balance=diamonds_balance + %d "
+ "WHERE id=%d "
+ "RETURNING *", 100, 5, 64);
User user = (User) session.createSQLQuery(updateQuery)
.addEntity(User.class)
.uniqueResult();
該鍵使用“ RETURNING *”將其指向,並使用.addEntity(User.class)將其映射到實體
我希望它可以幫助某人...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.