至少有两个例子表明您无法使用 HQL,而必须使用本机。
1) Hibernate 通常不适合在运行时执行 DDL 类型操作:
em.createNativeQuery("DROP TABLE IF EXISTS mytable").executeUpdate();
Run Code Online (Sandbox Code Playgroud)
2)我在这一点上可能是错的,但据我所知,HQL 查询通常看起来像"from MyClass as mc". 这意味着您必须在那里有一个类的字符串化名称,有时您必须在运行时确定类。反过来,这会将你的 HQL 转换成类似hql = "from " + obj.getSimpleName() + " sn";. 对于这种“多态”查询,以下内容会更清晰:
em.createNativeQuery(someSql, getConcreteClass());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5428 次 |
| 最近记录: |