2016-06-20 9 views
0

私は別のエンティティに加わるべきエンティティを持っています。この関係はオプションであり、埋め込みIDを使用します。Embedded Idを使用してリレーションシップをオプションでマークする方法はありますか?

@ManyToOne 
@JoinColumns({ 
    @JoinColumn(name = "CUST_NR", referencedColumnName = "CUST_NR", insertable = false, updatable = false), 
    @JoinColumn(name = "BILL_NR", referencedColumnName = "BILL_NR", insertable = false, updatable = false)}) 
@ForeignKey(name = "none") 
// Field is optional, so no need for a constraint 
// Need to use deprecated annotation https://hibernate.atlassian.net/browse/HHH-8805 
private Report report; 

私は、関連するレポートを持っていないエンティティを照会する場合は、

javax.persistence.EntityNotFoundExceptionで失敗:それはある62675cdb

@ のid ReportPkとの報告書を見つけることができません。単純なIDのために働いています。私は何を取りこぼしたか?

回避策は、FetchType.LAZYを使用します。しかし、私はそれを避けようとします。

答えて

1

JPA自体にはありません。 hibernate固有の注釈を使用する場合は、NotFound注釈を使用できます。

@ManyToOne 
@JoinColumns({ 
    @JoinColumn(name = "CUST_NR", referencedColumnName = "CUST_NR", 
       insertable = false, updatable = false), 
    @JoinColumn(name = "BILL_NR", referencedColumnName = "BILL_NR", 
       insertable = false, updatable = false)}) 
@ForeignKey(name = "none") 
// Field is optional, so no need for a constraint 
// Need to use deprecated annotation https://hibernate.atlassian.net/browse/HHH-8805 
@NotFound(NotFoundAction.IGNORE) 
private Report report; 

@NotFound(NotFoundAction.IGNORE)をご覧ください。

関連する問題