Java 如何在Hibernate中从多个表中获取数据?

Java 如何在Hibernate中从多个表中获取数据?,java,hibernate,jakarta-ee,spring-mvc,hibernate-mapping,Java,Hibernate,Jakarta Ee,Spring Mvc,Hibernate Mapping,我刚开始冬眠,想知道一些事情。我想在hibernate中实现以下查询,请指导我 SELECT p.num_is_active FROM ins.cnfgtr_user_log t, ins.service_user_auth p WHERE t.source = 'GC' and t.tokenid = p.txt_auth_token and t.sessionid = 100000000195756 and t.userid = p.txt_user_id and t.userid = 'M

我刚开始冬眠,想知道一些事情。我想在hibernate中实现以下查询,请指导我

SELECT p.num_is_active
FROM ins.cnfgtr_user_log t, ins.service_user_auth p
WHERE t.source = 'GC'
and t.tokenid = p.txt_auth_token
and t.sessionid = 100000000195756
and t.userid = p.txt_user_id
and t.userid = 'MASTERADMIN'

我还想知道我是否必须为这两个表维护两个单独的pojo?这个pojo需要完整吗?我的意思是,它们需要包含表的所有列,还是只能包含此查询所需的列?

Q:我必须为这两个表维护两个单独的POJO吗

回答:是的,你想。在ORM中,出于模块化的原因,每个表将由单独的POJO表示

Q:此POJO是否需要完成

回答:不需要。标记为“非空”的列除外。您可以使用JPA/Hibernate联接进行查询


希望这是有帮助的

简言之,是的。如果要使用hibernate,每个表都需要POJO。这就是冬眠的概念。感谢balaji,但准确地说,我想知道hibernate中这个查询的语法。你能帮我吗?在Hibernate中,你可以选择HQL或传统的原生sql(与你发布的查询相同)。首先使用这个查询,然后移动到HQL,因为HQL很简单。Ter是另一个称为criteria的选项,它是最面向对象的查询方式。另一件事是,假设Hibernate中存在某些未映射的表或视图,我们可能需要对其执行查询,如何实现这一点?如果您使用的是Hibernate查询语言(HQL)或criteria API,您的所有表都应该映射到hrwise Hibernate引擎,因为它不知道资源的其他部分,并且会给您错误消息。但如果使用本机SQL,则不需要映射任何内容。。。createQuery()用于HQL和seesion。createNativeQuery()用于不需要映射的传统sql查询。