2017-02-23 1 views
1
나는 내부로 선택하려고 해요

내 JPA 저장소 중 하나에 참여 서로 다른 두 가지의 절 요소JPA 스프링 부팅 내부에 가입 -와 - 절 참조 오류

쿼리 :

@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(); 

관계 :

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; 

오류 :

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: with-clause referenced two different from-clause elements 

답변

1

나는 어디 부분에에서 조건 ...을 제거하는 것입니다 :

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 

다른 종속성은 암시 적으로 어쨌든 매핑 구성에 포함됩니다.

+0

감사합니다. 어떻게 개체 배열로 데이터를받을 때 개체에서 값을 얻을 수 있습니까? firstObject.valueImLookingfor not working –

+0

getter/setters를 사용하십시오. getter가 필요합니다. – Akshay

+0

모든 엔티티 클래스에 getters 및 setters가 있습니다. 하지만 개체로 recive 때 그것 dosent 가치를 인식 –

0

이 query.Try에 ON 사용하지 마십시오은 다음

@Query(value = "select wm.WagerIdentification, wm.BoardNumber, wm.MarkSequenceNumber, wm.MarkNumber," + 
    " pt.CouponTypeIdentification, pt.WagerBoardQuickPickMarksBoard " + 
    "from WagerBoard wb " + 
    "inner join wb.listOfWagerMarks wm where wb.WagerIdentification = wm.WagerIdentification and wb.BoardNumber = wm.BoardNumber and wb.GameIdentification = wm.GameIdentification and wm.meta_IsCurrent = 1 " + 
    "inner join wb.poolgameTransaction pt where (wb.TransactionIdentification = pt.TransactionIdentification and pt.meta_IsCurrent = 1)" + 
    "where wb.meta_IsCurrent = 1") 
List<Object[]> findAllTest();