hibernate 联合主键怎么做查询

 我来答
mikemelon2012
推荐于2017-11-21 · TA获得超过3634个赞
知道大有可为答主
回答量:938
采纳率:87%
帮助的人:418万
展开全部

联合主键时,先做一个联合主键类:

import java.io.Serializable;
public class NamePK implements Serializable{ 
    //主键类private static final long serialVersionUID = 8313037022835155821L;
    private String firstName;
    private String lastName;
    // getter/setter方法略...

你的实体类,假设是UserInfo,就这么写了:

public class UserInfo {
    private NamePK namePk;
    private String sex;
    private int age;
   // getter/setter方法略...
}

配置映射文件UserInfo.hbm.xml的关键部分应该这么写:

   <composite-id name="namePk">
       <key-property name="firstName" column="first_name" length="12"/>
       <key-property name="lastName" column="last_name" length="12"/>
   </composite-id>


然后,查询时就对上面的类对象进行赋值,然后用session的get, load方法查:

     NamePK namePk = new NamePK();
      namePk.setFirstName("Zhang");
      namePk.setLastName("san");
      UserInfo ui = (UserInfo) session.get(UserInfo.class, namePk); 
      System.out.println(ui.getAge());
      System.out.println(ui.getSex());
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式