繁体   English   中英

在Hibernate一对多关系中如何获取记录

[英]How fetch record in Hibernate One to Many relationship

我有2个POJO类: Ownerdetials (父表)和Vehiclemaster (子表)。 我想获取属于Vehicle表的所​​有oname (表示所有者名称)。

我的课程:

Ownerdetails.java:

public class Ownerdetails  implements java.io.Serializable {
    private Integer ownerid;
    private String oname;
    private String panno;
    private String mobile;
    private String address;
    private String pincode;
    private String city;
    private String state;
    private String country;
    private String accno;
    private String bankname;
    private String branch;
    private String ifccode;
    private Set vehiclemasters = new HashSet(0);
    //Setter and Getter method 
 }

Vehiclemaster.java:

public class Vehiclemaster  implements java.io.Serializable {
    private Integer vid;
    private Ownerdetails ownerdetails;
    private String vno;
    private String vname;
    private String driverlicense;
    private String unladenWeight;
    private String drivername;
    private String vtype;
    private String inscompname;
    private String instype;
    private String insfrom;
    private String insto;
    private String fitnessdatefrom;
    private String fitnessdateto;
    //Setter and Getter Method
}

以下是我的SQL查询,如何在Hibernate HQL查询中转换?

select ownerdetails.oname from ownerdetails,vehiclemaster 
WHERE ownerdetails.ownerid=vehiclemaster.ownerid; 

我用谷歌搜索,但是没有得到正确的结果。

对应

public class Ownerdetails  implements java.io.Serializable {

  @Id
  private Integer ownerid;

  @OneToMany(mappedBy = "ownerdetails")
  private Set<Vehiclemaster> vehiclemasters = new HashSet(0);

}

public class Vehiclemaster  implements java.io.Serializable {

   @Id
   private Integer vid;

   @ManyToOne 
   @JoinColumn(name = "ownerid")
   private Ownerdetails ownerdetails;

}

询问

select distinct od.oname 
from Ownerdetails od
   inner join od.vehiclemasters vm
where vm.vname = 'name'  // optional

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM