我有三节课。 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 ...
}
从技术上讲,这应该是存储过程或视图的工作。不幸的是,我无法更改数据库。
任何帮助/指针将不胜感激。
答案 0 :(得分:1)
您可以将非常复杂的SQL查询创建为视图,并将您的实体映射到该视图。基本上,视图只是一个只读表(您可以将其作为Oracle中的读写,但这是另一个故事:))因此任何hibernate映射都可以作为只读实体正常工作。我之前使用普通的Hibernate和hbm文件已经完成了这项工作。我从未尝试使用JPA或注释,但我不明白为什么它不起作用。