【发布时间】:2013-01-18 17:40:47
【问题描述】:
我想创建一个查询,该查询返回存储在数据库中的实体客户端的所有 roomId。 roomId 是 Client 实体中的一个属性。
我想使用这样的类型安全构造:
TypedQuery<Set<Long>> q = em.createNamedQuery("getRoomIdsByServer", Set.class);
q.setAttribute("server",server);
但是这会产生编译错误。
NamedQuery 可能看起来像这样:
@NamedQuery(name = "getRoomIdsByServer", query = "SELECT c.room_id FROM Client c WHERE c.server = :server GROUP BY c.room_id")
但这似乎超出了 JPQL 的范围。 我们正在使用 openJPA(版本 2.2.1)
有一种解决方案可以解决这个问题使用类型化查询,请参阅https://stackoverflow.com/a/6956037/1448704
但我想使用类型化查询来防止那些讨厌的强制转换操作。
【问题讨论】: