0

HBM マッピングで次のことを行うことはできますか?

<class name="Employee" table="employees">
    <!-- assume that each person only has exactly one supervisor -->
    <many-to-one name="supervisor" class="Employee" column="supervisorId" />
</class>

上記の HBM マッピングを使用すると、サーバーが次のエラーで起動を拒否します。

org.hibernate.InstantiationException: could not instantiate test object Employee
Caused by: java.lang.StackOverflowError
at Employee.<init>(Employee.java:11)
at Employee.<init>(Employee.java:11)
at Employee.<init>(Employee.java:11)
...... (about a hundred duplicates)

Employee.java の 11 行目は単に次のように述べています。

public class Employee implements Serializable {

上司と従業員の関係をモデル化するにはどうすればよいですか? スーパーバイザー用の特別な POJO はなく、スーパーバイザー オブジェクトには特別なフィールドはありません。

4

1 に答える 1

1

Hibernate では、このような関係のマッピングに問題はありません。

次のようなコードのエラーが原因で無限再帰が発生しているようです。

public class Employee {
    private Employee supervisor = new Employee();
}
于 2011-05-03T16:05:29.087 に答える