frisk_zhou 2009-06-18 14:13
浏览 303
已采纳

Hibernate复合主键的使用

用到复合主键,它的查询方法我不太熟悉。
hbm.xml是这样的。[code="java"]


















[/code]

EmpInfo .java是这样的 太长,去掉一部分
[code="java"]public class EmpInfo implements java.io.Serializable {

// Fields

private EmpInfoId id;

// Constructors

/** default constructor */
public EmpInfo() {
}

/** full constructor */
public EmpInfo(EmpInfoId id) {
    this.id = id;
}

// Property accessors

public EmpInfoId getId() {
    return this.id;
}

public void setId(EmpInfoId id) {
    this.id = id;
}

}[/code]
EmpInfoId.java是这样的。
[code="java"]

public class EmpInfoId implements java.io.Serializable {

// Fields

private Integer empId;
private String empCode;
private String empName;
private String empSex;

// Property accessors

public Integer getEmpId() {
    return this.empId;
}

public void setEmpId(Integer empId) {
    this.empId = empId;
}

public String getEmpCode() {
    return this.empCode;
}

public void setEmpCode(String empCode) {
    this.empCode = empCode;
}

}[/code]
请问我想查我通过empCode empName改如何做?
我的代码如下,但是失败:
[code="java"]Criteria cr1=this.getSession().createCriteria(EmpInfo.class);
cr1.add(Restrictions.eq("id.empCode", cardNo));
EmpInfo empInfo=(EmpInfo) cr1.uniqueResult();
if(empInfo!=null){
System.out.println(empInfo.getId().getEmpName());
}[/code]
[b]问题补充:[/b]
大哥,myeclispe生成的就是这样的啊!
[b]问题补充:[/b]
也,那几个大佬呢?
[b]问题补充:[/b]
你这样的方法我刚才自己试过,但是查到的为null,应该不能为null才对。我在用sql试一下。谢谢你!可以继续关注。
[b]问题补充:[/b]
String sql="select * from SmartCardDB.dbo.EmpInfo as emp where emp.empCode="+cardNo;
SQLQuery sq=this.getSession().createSQLQuery(sql); 怎么把这个sq得到的数据迭代出来?

[b]问题补充:[/b]
大哥,这个不行的,如果直接用jdbc肯定是可以,刚才我想和你一样去改配置文件和POJO的,但是不知道怎么去改配置文件!不管怎么说,会给你的。
[b]问题补充:[/b]
code="java"]List list = sq.list();[[/code]之后呢?还是没有办法去读取每一个字段的值。还是想改pojo和配置文件。

  • 写回答

5条回答 默认 最新

  • laitaogood 2009-06-18 16:32
    关注

    [quote]大哥,这个不行的,如果直接用jdbc肯定是可以,刚才我想和你一样去改配置文件和POJO的,但是不知道怎么去改配置文件!不管怎么说,会给你的。 [/quote]
    empId 是你的主键吧,把那些属性全部弄到EmpInfo类中,在EmpInfo类中去掉EmpInfoId这个对象,然后修改hbm配置文件,去掉下面这句
    [code="xml"]

























    [/code]

    改为
    [code="xml"]

    <!--生成策略自己定-->







    <!--如此类推-->[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题