您可能想尝试以下方法之一:
使用 方法
createNativeQuery(sqlString, resultClass)
还可以使用
EntityManager.createNativeQuery()API 动态定义本机查询。
String sql = "SELECt USER.* FROM USER_ AS USER WHERe ID = ?";Query query = em.createNativeQuery(sql, User.class);query.setParameter(1, id);User user = (User) query.getSingleResult();
使用 注释
@NamedNativeQuery
本机查询是通过
@NamedNativeQuery和
@NamedNativeQueries注释或
<named-native-query>XML元素定义的。
@NamedNativeQuery( name="complexQuery", query="SELECt USER.* FROM USER_ AS USER WHERe ID = ?", resultClass=User.class)public class User { ... }Query query = em.createNamedQuery("complexQuery", User.class);query.setParameter(1, id);User user = (User) query.getSingleResult();您可以在精美的开放书《 Java
Persistence》 (
PDF格式
)中阅读更多内容。
────────
注 :关于的使用 getSingleResult()
,请参见为什么永远不要
getSingleResult()在JPA中使用。



