【发布时间】:2014-09-30 21:58:33
【问题描述】:
我有三门课。 ClassA 和 ClassB 是映射到数据库中的经典 POJO 实体。我想要第三个 ClassC 使用 HQL 在数据库(未映射到任何表)中执行特定且复杂的查询。是否可以在 ClassC 上添加 @Entity 注释并将其保留为只读?
我正在阅读文档以找出映射以下(示例)sql语句的方法:
select
a.id, b.name, c.city
from
emp a, identity b, address c
where
a.id = b.id and a.id = c.id
我不想想为 emp、身份和地址创建域对象和映射。
我只想拥有一个对象,映射到 sql 语句的输出。
public class Data {
private int id;
private String name;
private String city;
// ... and other details ...
}
从技术上讲,这应该是存储过程或视图的工作。不幸的是,我无法更改数据库。
任何帮助/指针将不胜感激。
【问题讨论】:
-
为什么要使用@Entity 创建一个类只是为了创建 HQL 查询?只有当类在 DB 中有映射表时,您才必须使用实体注释。
-
其实我希望 classC 执行一些报告。我想使用这个类,就像我使用带有 @Entity 注释的 classA 或 ClassB 一样。在这个 classC 中,每个字段都是特定 HQL 请求的结果,因此我的应用程序仍然匹配 MVC 模式。
标签: hibernate jpa persistence hql pojo