当前位置: 首页 > 知识库问答 >
问题:

Hibernate使用条件或hql查询/实时处理多个表

姜鸿畴
2023-03-14

我是Hibernate的新手,希望实现Hibernate条件或hql来查询多个表以获得结果,但我在这方面遇到了问题。。现在,我在hibernate中使用原生sql来完成我需要的任务,但我想用hql/criteria尝试一下。。下面是我用来获取结果的本机查询。。

select table1.dmname,table2.polname,table3.path,table4.uidname 
    from table1,table2,table3,table4
    where table3.dmnid = table1.dmnid
    and table3.polid = table2.polid
    and table3.3.uid = table4.uid

下面是我的实体pojo类

表1:

@Entity
@Table(name = "table1", uniqueConstraints = @UniqueConstraint(columnNames = "dmname"))
        @Cache(usage=CacheConcurrencyStrategy.READ_ONLY,region="domain")
public class table1  {

    private String dmnid;
    private String dmnname;

    @Id
    @Column(name = "dmnid", unique = true, nullable = false)
    public String getDmnid() {
        return this.dmnid;
    }

    public void setDmnid(String dmnid) {
        this.dmnid = dmnid;
    }

    @Column(name = "dmnname", unique = true, nullable = false)
    public String getDmnname() {
        return this.dmnname;
    }

    public void setDmnname(String dmnname) {
        this.dmnname = dmnname;
    }

表2:

@Entity
@Table(name = "table2", uniqueConstraints = @UniqueConstraint(columnNames = {
        "dmnname", "polname" }))
public class table2 implements java.io.Serializable {

    private String dmnname;
    private String polid;
    private String polname;

    // getters and setter

表3:

@Entity
@Table(name = "table3")
public class table3 implements java.io.Serializable {

    private String dmnname;
    private String polid;
    private String uid;
    private String path;

    // getters and setters

表4:

@Entity
@Table(name = "table4", uniqueConstraints = @UniqueConstraint(columnNames = "uidname"))
public class table4 implements java.io.Serializable {

    private String uid;
    private String uidname;

    // getters and setters

我还没有实现pojo类中表之间的映射,我很难理解这一点。。所以我要向社区寻求帮助来救我。。感谢您的关注,我们将非常感谢您的帮助。。

共有1个答案

康锦
2023-03-14

我建议你参考这里的Hibernate文档来详细了解关联。http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#associations

关于您在HQL上的问题,转换您的本机SQL(除非您需要任何明确的连接条件)看起来像这样:

  Query query = session.createQuery('from table1 t1,table2 t2,table3 t3,table4 t4
        where t3.dmnid = t1.dmnid
        and t3.polid = t2.polid
        and t3.uid = t4.uid');
  List results = query.list();
 类似资料:
  • 和异常: 实体:GirMotiuRebuig 这个标准起作用了:

  • 问题内容: 我是事件/回调样式编程和NodeJS的新手。我正在尝试实现一个小的http服务器,它使用node-mysql模块来提供ddbb数据。 我的问题来自查询结构。由于经常有一些查询需要运行先前查询的结果,因此我无法同时(异步)运行所有查询,因此不得不等待一些结果。 我的第一种方法是同时运行所有非依赖性查询,然后循环运行,直到所有非依赖性查询都设置了一个标志,说我已经完成,这样我就可以继续处理

  • 本文向大家介绍Hibernate hql查询代码实例,包括了Hibernate hql查询代码实例的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Hibernate hql查询的相关内容,具体如下。 HQL介绍 Hibernate语言查询(Hibernate Query Language,HQL)它是完全面向对象的查询语句,查询功能非常强大;具备多态、关联等特性,HQL查询也是Hiber

  • 问题内容: 使用Criteria或HQL有什么利弊?Criteria API是在Hibernate中表达查询的一种很好的面向对象的方式,但是有时候Criteria Queries比HQL更难以理解/构建。 您何时使用标准以及何时使用HQL?在哪种用例中,您更喜欢什么?还是只是口味问题? 问题答案: 我最喜欢动态查询的条件查询。例如,动态添加一些订购或根据某些参数省去某些零件(例如限制)要容易得多。

  • 我有一个班级评语: 保留comment类可以工作,但以下条件查询是有效的: 抛出org.hibernate.exception.DataException:未为参数%1指定值。 这是生成的查询: 选择this_.comment_id作为comment1_0_0_,this_.comment_id作为comment0_0_,commenttop2_.comment_id作为comment1_0_2_

  • 1. 前言 本节课程和大家一起学习 Hibernate 中的 HQL ( Hibernate 查询语言)。通过本节课程的学习,你将了解到: HQL 基础语法; HQL 查询的具体实现。- 2. HQL 查询?前面不是讲过?用过吗? 但是,前面的查询都是简单查询,真实项目中的查询需求要远比这个复杂。仅仅依靠 get()、load() 是远远达不到要求。 Hibernate 提供了灵活多样的查询机制,