1对n 数据嵌套的问题,有没有大佬有优雅的方式解决呢
一对一,你是觉得哪里不优雅??
最省心的办法就是,别按照OOP模式建模,一张表,一个对象。
一对多 双向查询 出现循环嵌套 怎么写会比较好
??你怎么建模的,我一对一没出现过循环嵌套的问题。
一对多 一对多 一对多 一对多 一对多 一对多 一对多 一对多
我傻逼了,看错字儿。。。
一对多的话,应该有一方放弃维护权,这样并不会嵌套啊。
我一直也是用JPA,一年多没用过MYBATIS了,不过我用JPA不按照oop建模,所以没这些关联。
双向 双向 双向 双向 双向 双向 双向 双向 双向 放弃了成单向了
你不用级联操作吗
Querydsl来执行关联检索,它可以很好的配合JPA。我给你看个Demo。
QCollectionGroup qCollectionGroup = QCollectionGroup.collectionGroup;
QVideoCollection qVideoCollection = QVideoCollection.videoCollection;
QVideo qVideo = QVideo.video;
JPQLQuery<Video> jpqlQuery = query.select(Projections.bean(Video.class, qVideo.id, qVideo.title, qVideo.playCount, qVideo.poster, qVideo.duration,
qVideoCollection.createdDate)) // 添加时间
.from(qVideoCollection)
.innerJoin(qCollectionGroup).on(qCollectionGroup.id.eq(qVideoCollection.groupId))
.innerJoin(qVideo).on(qVideo.id.eq(qVideoCollection.videoId))
.where(qCollectionGroup.userId.eq(userId)
.and(qCollectionGroup.id.eq(groupId))
.and(qVideo.enabled.eq(true)))
.offset((page - 1) * rows).limit(rows)
;
你可以试试看 ,完全用代码的方式来实现join检索,子检索。很舒服。
感谢 我看一下