JPA弹簧引导内部连接 - with-clause引用了两个不同的从句子元素错误 [英] JPA spring boot inner join - with-clause referenced two different from-clause elements error
本文介绍了JPA弹簧引导内部连接 - with-clause引用了两个不同的从句子元素错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图在我的一个JPA仓库中选择一个内联接
查询:
@Query(value =select wm.WagerIdentification,wm.BoardNumber,wm.MarkSequenceNumber,wm.MarkNumber,+
pt。 CouponTypeIdentification,pt.WagerBoardQuickPickMarksBoard+
from WagerBoard wb+
内部连接wb.listOfWagerMarks wm on wb.WagerIdentification = wm.WagerIdentification and wb.BoardNumber = wm.BoardNumber and wb.GameIdentification = wm .GameIdentification和wm.meta_IsCurrent = 1+
内连接wb.poolgameTransaction点对(wb.TransactionIdentification = pt.TransactionIdentification和pt.meta_IsCurrent = 1)+
其中wb.meta_IsCurrent = 1 )
List< Object []> findAllTest();
关系:
PoolgameTransactions
@OneToMany(mappedBy =poolgameTransaction)
私人列表< WagerBoard> ListOfWagers = new ArrayList<>();
WagerBoard
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name =TransactionIdentification,insertable = false,updatable = false),
@JoinColumn name =meta_CreatedDate,insertable = false,updatable = false)
})
私人PoolgameTransaction poolgameTransaction;
@OneToMany(mappedBy =wagerBoard)
私人列表< WagerBoardMarks> listOfWagerMarks;
WagerBoardMarks
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name =BoardNumber,insertable = false,updatable = false),
@JoinColumn name =GameIdentification,insertable = false,updatable = false),
@JoinColumn(name =WagerIdentification,insertable = false,updatable = false),
@JoinColumn(name =meta_CreatedDate, insertable = false,updatable = false)
})
private WagerBoard wagerBoard;
错误:
引起:org.hibernate.hql.internal.ast.QuerySyntaxException:with-clause引用了两个不同于子句元素
解决方案
我会从On ..移除条件到where部分:
select wm.WagerIdentification,wm.BoardNumber,wm.MarkSequenceNumber,wm.MarkNumber,+
pt.CouponTypeIdentification,pt.WagerBoardQuickPickMarksBoard+
from WagerBoard wb+
inner join wb.listOfWagerMarks wm
inner join wb.poolgameTransaction pt
where wm.meta_IsCurrent = 1 and wb.meta_IsCurrent = 1
其他依赖关系隐式嵌入映射配置。
I'm trying to select with a inner join in one of my JPA repositories
the query:
@Query(value = "select wm.WagerIdentification, wm.BoardNumber, wm.MarkSequenceNumber, wm.MarkNumber," +
" pt.CouponTypeIdentification, pt.WagerBoardQuickPickMarksBoard " +
"from WagerBoard wb " +
"inner join wb.listOfWagerMarks wm on wb.WagerIdentification = wm.WagerIdentification and wb.BoardNumber = wm.BoardNumber and wb.GameIdentification = wm.GameIdentification and wm.meta_IsCurrent = 1 " +
"inner join wb.poolgameTransaction pt on (wb.TransactionIdentification = pt.TransactionIdentification and pt.meta_IsCurrent = 1)" +
"where wb.meta_IsCurrent = 1")
List<Object[]> findAllTest();
relations:
PoolgameTransactions
@OneToMany(mappedBy = "poolgameTransaction")
private List<WagerBoard> ListOfWagers = new ArrayList<>();
WagerBoard
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "TransactionIdentification", insertable = false, updatable = false),
@JoinColumn(name = "meta_CreatedDate", insertable = false, updatable = false)
})
private PoolgameTransaction poolgameTransaction;
@OneToMany(mappedBy = "wagerBoard")
private List<WagerBoardMarks> listOfWagerMarks;
WagerBoardMarks
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "BoardNumber", insertable = false, updatable = false),
@JoinColumn(name = "GameIdentification", insertable = false, updatable = false),
@JoinColumn(name = "WagerIdentification", insertable = false, updatable = false),
@JoinColumn(name = "meta_CreatedDate", insertable = false, updatable = false)
})
private WagerBoard wagerBoard;
the error:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: with-clause referenced two different from-clause elements
解决方案
I would remove the condition from On.. to the where part:
select wm.WagerIdentification, wm.BoardNumber, wm.MarkSequenceNumber, wm.MarkNumber," +
" pt.CouponTypeIdentification, pt.WagerBoardQuickPickMarksBoard " +
"from WagerBoard wb " +
"inner join wb.listOfWagerMarks wm
"inner join wb.poolgameTransaction pt
where wm.meta_IsCurrent = 1 and wb.meta_IsCurrent = 1
The other dependencies are implicitly embedded in the mapping configuration anyway.
这篇关于JPA弹簧引导内部连接 - with-clause引用了两个不同的从句子元素错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文