2017-06-02 6 views
0

私は3つのテーブルを持っている:
請求書(ID、userReadeableNum、...)
注文(ID、userReadeableNum、...)
InvoiceOrderRel(ID、invoceId、注文ID、insertDate、...)
JPA/Hibernate:List属性をjpqlクエリに関連付けることは可能ですか?

OrderクラスのuserReadableNumを使用してInvoice ClassにListプロパティを作成したいとします。このような

何か:

@Entity 
@Table(name="INVOICE") 
@Immutable 
public class Invoice implements Serializable{ 

    @Id 
    @Column(name="INV_ID") 
    private long invId; 
    //many attributes 

    /*I know that this annotation does not exists, i want to know if there's something similar*/ 
    @ByQuery("select o.userReadableNum from Order o join o.invoiceOrderList iol where iol.order.invId = :invId") 
    private List<String> orderNums; 
    //etc... 

答えて

0

私はそのようなことを聞​​いたことがないが、あなたはこの問題を解決するための@ManyToMany関係を作成することができます。 JPAと休止状態はエンティティとしてデータベーステーブルを調べるので、PKとFKが必要です。

@ManyToMany関係の場合、orderNumsプロパティは文字列のリストではなくList<Order>である必要があります。 InvoiceOrderRelがあなたの参加テーブルになります。

ここには@ManyToManyマッピングに関する少しの情報があります。

+0

私はここでパフォーマンスを考えていますが、解決策がない場合はおそらく私はあなたの提案を使用します。 –

関連する問題