2012-04-27 3 views
6

私はHibernateとJPAで作業しています。私は、企業がParentCustomerを参照Customerと呼ばれる持っている:エンティティが見つからない場合はヌルオブジェクト

public class Customer { 
    @Id 
    @GeneratedValue 
    @Column(name = "CustomerID") 
    private int id; 

    @ManyToOne 
    @JoinColumn(name = "ParentCustomerID") 
    private Customer parent; 

    // ... 
} 

しかし、私のデシベルにParentCustomerID0に設定されているので、親を持たない一部の顧客があります。私は私のクラスをテストするときに私が得る例外は次のとおりです。idは0ときParentCustomernullに設定する方法は

javax.persistence.EntityNotFoundException: Unable to find it.keyforup.pat.data.entities.Customer with id 0

ありますか?

+3

を試してみてください?エンティティを 'null'にしたい場合、外部キーの値は' null'でなければなりません。 –

+0

私は、サードパーティのアプリケーションで使用されているデータベースで作業しています。このアプリケーションでは、顧客の親がないときに親IDを0に設定しています。したがって、親が見つからないたびに'propertyはnullに設定されています。 – davioooh

+1

ただし、これは正当なデータベース動作ではありません。さらに、厳密なデータベース制限の検証が暗示されていれば、それもできませんでした。 –

答えて

19

あなたは0を言うなぜこの

@ManyToOne 
@JoinColumn(name = "ParentCustomerID") 
@NotFound(action = NotFoundAction.IGNORE) 
private Customer parent; 
+0

これは、私が投稿した正確な複製で提案されたものです。 –

+0

私はこれまでにこの問題を抱えていましたが、注釈なしで解決しました。スレッドを見たときに、トレッドミルのようなものでした。誰かが私にそれを打つ前にすぐに答えを投稿することに決めました。最初の手紙で重複した投稿が表示されませんでした。 – Bitmap

関連する問題