uuxxl 2017-03-02 16:34 采纳率: 50%
浏览 1561
已结题

Hibernate 通过中间表查询的问题

ATable.java

 @ManyToOne(fetch = FetchType.LAZY,targetEntity=BTableEntity.class)
    @JoinTable(name= "a_ref_b", joinColumns = {@JoinColumn(name = "a_id", nullable = false, updatable = false) },inverseJoinColumns = { @JoinColumn(name = "b_id",referencedColumnName="id", nullable =false, updatable = false) })
    public BTableEntity getBTableEntity() {
        return bTable;
    }

BTable.java

 @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE },  
            fetch = FetchType.LAZY,targetEntity=ATableEntity.class)
    @JoinTable(name= "a_ref_b", joinColumns = {@JoinColumn(name = "b_id", nullable = false, updatable = false) },inverseJoinColumns = { @JoinColumn(name = "a_id", nullable =false, updatable = false) })
    public List<ATableEntity> getATableEntitys() {
        return ATableEntitys;
    }

但是在查询的ATable的时候,总是无法查询出BTable的值,打印出的sql语句只关联到a_ref_b
并没有关联到BTable。请问应该怎么写?

完整Entity代码:
@Entity
@Table(name = "b_table", schema = "")
@SuppressWarnings("serial")
public class BTableEntity implements java.io.Serializable {

private String id;

private String countty;

private String province;

private String city;

private List<ATableEntity> ATableEntitys;

@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public String getId(){
    return this.id;
}


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

@Column(name ="COUNTTY",nullable=true,length=32)
public String getCountty(){
    return this.countty;
}


public void setCountty(String countty){
    this.countty = countty;
}

@Column(name ="PROVINCE",nullable=true,length=32)
public String getProvince(){
    return this.province;
}


public void setProvince(String province){
    this.province = province;
}

@Column(name ="CITY",nullable=true,length=32)
public String getCity(){
    return this.city;
}


public void setCity(String city){
    this.city = city;
}

@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE },  
        fetch = FetchType.LAZY,targetEntity=ATableEntity.class)
@JoinTable(name= "a_ref_b", joinColumns = {@JoinColumn(name = "b_id", nullable = false, updatable = false) },inverseJoinColumns = { @JoinColumn(name = "a_id", nullable =false, updatable = false) })
public List<ATableEntity> getATableEntitys() {
    return ATableEntitys;
}

public void setATableEntitys(List<ATableEntity> aTableEntitys) {
    ATableEntitys = aTableEntitys;
}

}

 @Entity
@Table(name = "a_table", schema = "")
@SuppressWarnings("serial")
public class ATableEntity implements java.io.Serializable {

    private String id;

    private String name;

    private String sex;

    private String hobby;


    private BTableEntity bTable=new BTableEntity();

    @Id
    @GeneratedValue(generator = "paymentableGenerator")
    @GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
    @Column(name ="ID",nullable=false,length=36)
    public String getId(){
        return this.id;
    }


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

    @Column(name ="NAME",nullable=true,length=32)
    public String getName(){
        return this.name;
    }


    public void setName(String name){
        this.name = name;
    }

    @Column(name ="SEX",nullable=true,length=32)
    public String getSex(){
        return this.sex;
    }


    public void setSex(String sex){
        this.sex = sex;
    }

    @Column(name ="HOBBY",nullable=true,length=32)
    public String getHobby(){
        return this.hobby;
    }

    public void setHobby(String hobby){
        this.hobby = hobby;
    }

    @ManyToOne(fetch = FetchType.LAZY,targetEntity=BTableEntity.class)
    @JoinTable(name= "a_ref_b", joinColumns = {@JoinColumn(name = "a_id", nullable = false, updatable = false) },inverseJoinColumns = { @JoinColumn(name = "b_id",referencedColumnName="id", nullable =false, updatable = false) })
    public BTableEntity getBTableEntity() {
        return bTable;
    }

    public void setBTableEntity(BTableEntity bTableEntity) {
        bTable = bTableEntity;
    }

}
  • 写回答

1条回答 默认 最新

  • uuxxl 2017-03-02 17:59
    关注

    弄出来了。但是我想请问一下,我想查出ATable所有的数据,如果ATable与BTable有关联,则带上BTable的值。请问要怎么写注解?

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记