hibernate 多对一

使用hibernate的时候经常会用到关联查询,尤其是类似部门这种表,在其他表中存储的是depid,但是用户却要显示depname,以前经常select * from student,dep 这种关联sql,然后Object[] obs = list.get(i) 然后报objects转换为bean,很麻烦,hibernate又关联,但是一旦形成一对多,dep整张表还会显示student的数据,很不好,因此可以采用单向多对一这种模式,下面就是jb 对应Jbfldm1这张表,查出来的wellsource里边jb{jsbflm.jbdm1,dbfldm1.jb},只是记住它的注解不是普通的了,而是 @JoinColumn(name = "JB")


   @ManyToOne
//    @Column(name = "JB", length = 20)
    @JoinColumn(name = "JB")
    public Jbfldm1 getJbfldm1() {
        return jbfldm1;
    }


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

    private String wellId;
    private String jm;
    private Jbfldm1 jbfldm1;
    private Date tcrq;
    private String orgId;
    private String jx;
    private Double x;
    private Double y;
    private String xlj;

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


    // Property accessors
    @Id
    @Column(name = "WELL_ID", unique = true, nullable = false, length = 10)
    public String getWellId() {
        return this.wellId;
    }

    public void setWellId(String wellId) {
        this.wellId = wellId;
    }

    @Column(name = "JM", nullable = false, length = 60)
    public String getJm() {
        return this.jm;
    }

    public void setJm(String jm) {
        this.jm = jm;
    }

    @ManyToOne
//    @Column(name = "JB", length = 20)
    @JoinColumn(name = "JB")
    public Jbfldm1 getJbfldm1() {
        return jbfldm1;
    }


    public void setJbfldm1(Jbfldm1 jbfldm1) {
        this.jbfldm1 = jbfldm1;
    }

    @Temporal(TemporalType.DATE)
    @Column(name = "TCRQ", length = 7)
    public Date getTcrq() {
        return this.tcrq;
    }

    


    public void setTcrq(Date tcrq) {
        this.tcrq = tcrq;
    }

    @Column(name = "ORG_ID", nullable = false, length = 10)
    public String getOrgId() {
        return this.orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    @Column(name = "JX", length = 20)
    public String getJx() {
        return this.jx;
    }

    public void setJx(String jx) {
        this.jx = jx;
    }

    @Column(name = "X", precision = 12, scale = 5)
    public Double getX() {
        return this.x;
    }

    public void setX(Double x) {
        this.x = x;
    }

    @Column(name = "Y", precision = 12, scale = 5)
    public Double getY() {
        return this.y;
    }

    public void setY(Double y) {
        this.y = y;
    }

    @Column(name = "XLJ", length = 6)
    public String getXlj() {
        return this.xlj;
    }

    public void setXlj(String xlj) {
        this.xlj = xlj;
    }

}


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

    // Fields

    private String jbdm;
    private String jb;

    // Constructors

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

    /** full constructor */
    public Jbfldm1(String jbdm, String jb) {
        this.jbdm = jbdm;
        this.jb = jb;
    }

    // Property accessors
    @Id
    @Column(name = "JBDM", unique = true, nullable = false, length = 10)
    public String getJbdm() {
        return this.jbdm;
    }

    public void setJbdm(String jbdm) {
        this.jbdm = jbdm;
    }

    @Column(name = "JB", nullable = false, length = 20)
    public String getJb() {
        return this.jb;
    }

    public void setJb(String jb) {
        this.jb = jb;
    }

}

表结构

WELL_ID VARCHAR2(10) not null,
  JM      VARCHAR2(60) not null,
  JB      VARCHAR2(20),
  TCRQ    DATE,
  ORG_ID  VARCHAR2(10) not null,
  JX      VARCHAR2(20),
  X       NUMBER(12,5),
  Y       NUMBER(12,5),
  XLJ     VARCHAR2(6)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值