ham*_*med 5 java oracle hibernate hql
我在Java spring MVC应用程序中将Hibernate Query Language(HQL)与Oracle数据库一起使用。我以这种方式编写了一个HQL更新查询:
String hql = "update " + MyModel.class.getName() + " e set e.field = " + value + " where ..."
//Acquiring session
...
Query query = session.createQuery(hql);
int result = query.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
该executeUpdate()方法返回更新的行数。但是我想在执行更新查询后获取更新行的ID的列表。HQL有什么方法可以做到这一点吗?
小智 5
据我所知,JPA/Hibernate 中没有这样的功能。但您可以创建本机查询并使用本机 SQL。我不知道 oracle,但在 PostgreSQL 中我会写:
String sql = "update table set field = :values where ... returning id";
Query query = session.createNativeQuery(sql);
query.setParameter("value", value);
List ids = query.list();
Run Code Online (Sandbox Code Playgroud)
可能oracle有类似的功能,这会对你有所帮助。
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |