我有一个Admin
扩展的对象User
。默认情况下,这两个对象都在User_
我的 Derby 数据库的表中(包括来自 的字段Admin
)。通常我会选择User
这样的:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<User> query = cb.createQuery(User.class);
Root user= query.from(User.class);
Predicate predicateId = cb.equal(category.get("id"), id);
query.select(user).where(predicateId);
return em.createQuery(query).getSingleResult();
但是由于我的查询的复杂性,我正在使用这样的本机查询:
Query query = em.createNativeQuery("SELECT USER.* FROM USER_ AS USER WHERE ID = ?");
query.setParameter(1, id);
return (User) query.getSingleResult();
虽然这会引发强制转换异常。我认为这是由于来自Admin
.
我的问题是,如何User
使用与第一个示例具有相同结果的本机查询来选择一个(包括与JPQL 查询返回的@LOB
和(等)相同的值)?@ManyToOne