单向关联java_openJPA定义单向关联

其实在定义单向关系中只有三情况:

一对多

一对一

多对多

OneToOne

@OneToOne(fetch = FetchType.LAZY)

@JoinColumn(name="当前对象的关联id")

使用如:

1.直接使用

JPQL:select o.id, o.name,o.relaObj.id,o.relaObj.name from User o where o.id=?1,

此种方式生成的SQL:select t0.id,t0.name,t1.id,t2.name from User t0,Rel t1 where t0.id=?1 and t0.当前对象的关联id=t1.id

2.用join

JPQL:select o.id, o.name,r.id,o.r.name from User o left join o.relaObj r where o.id=?1

第2种方式常用一些

OneToMany

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)

@JoinTable(

joinColumns = { @JoinColumn( name="condition_id") },//当前对象的关联id

inverseJoinColumns = @JoinColumn( name="actionDefine_id")//关联表的id

)

@IndexColumn(name="sortFlag")

ManyToMany

@ManyToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)

@JoinTable(

name="中间表",,

joinColumns = { @JoinColumn( name="condition_id") },//当前对象的关联id

inverseJoinColumns = @JoinColumn( name="actionDefine_id")//关联表的id

)

@IndexColumn(name="sortFlag")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值