jpa多表查询及子查询

1. 主表1:1子表  主表查询

1.1 **主表 MasterEntity

    

 
 
@OneToOne
@JoinColumn(name = "masterext")
MasterExtendEntity masterExtendEntity; //关联表


**子表 MasterExtendEntity

1.2 查询

Root<MasterEntity> root
Path<String> code = root.join("MasterExtendEntity").get("ExtField1")
Iterator iterator =  query.codeList.iterator()
In invalue = cb.in(code);
while (iterator.hasNext()) {
invalue.value(iterator.next())
}
searchList.add(invalue)

 

2. 主表1:1子表  子查询

 

2.1

**子表:MasterExtendEntity

@OneToOne
@JoinColumn(name = "MasterEntityId", nullable = false)
MasterEntity masterEntity

**主表 MasterEntity

 

2.2查询

//子查询
Subquery< MasterExtendEntity> subquery = query.subquery(MasterExtendEntity)
Root< MasterExtendEntity> extEntityRoot = subquery.from(MasterExtendEntity)
subquery.select(extEntityRoot)


Predicate correlatePredicate = cb.equal(extEntityRoot.get("MasterEntity"), root)
subquery.where(
correlatePredicate,
cb.equal(extEntityRoot.get("code"), String), cb.equal(extEntityRoot.get("code"), String)
)
searchList.add(cb.exists(subquery))

 

转载于:https://www.cnblogs.com/pokay/p/8277224.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值