2017-02-23 7 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を使用する...ゲッターが必要です – Akshay

+0

私はすべてのエンティティクラスにゲッターとセッターを持っています。しかし、私はそれをオブジェクト[]として受けとめたときに値 –

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