【发布时间】:2013-06-18 14:32:53
【问题描述】:
是否可以直接从查询创建实体?
不知道怎么样。但有人告诉我,我可以从查询中创建一个实体(不是 VIEW)。
我的需要是连接多个表并仅提取一些列并将其用作代码中的实体。
【问题讨论】:
是否可以直接从查询创建实体?
不知道怎么样。但有人告诉我,我可以从查询中创建一个实体(不是 VIEW)。
我的需要是连接多个表并仅提取一些列并将其用作代码中的实体。
【问题讨论】:
我不确定您所说的实体是什么意思(SSCCE 会有所帮助,IMO)。
但是,您正在寻找的可能是JPQL Constructor Expressions。
在 SELECT 子句中 可以在 SELECT 列表中使用构造函数来返回一个或多个 Java 实例。指定的类不需要是实体或映射到数据库。构造函数名称必须是完全限定的。 如果在 SELECT NEW 子句中指定了实体类名称,则生成的实体实例处于新状态。
以下是一个例子-
SELECT NEW com.company.PublisherInfo(pub.id, pub.revenue, mag.price)
FROM Publisher pub JOIN pub.magazines mag WHERE mag.price > 5.00
您可以使用上述方法调用构造函数并将选定的值传递给它以实例化您的对象。
这是example using HQL 的链接。
【讨论】: