0
public class Person {
    private long id;
    private String name;
    private list<Person> persons;

    public long getId() {
      return id;
    }

    public void setId(long id) {
      this.id = id;
    }

    public String getName() {
      return name;
    }

    public void setName(String name) {
      this.name = name;
    }

    public String getPersons() {
      return persons;
    }

    public void setPersons(String persons) {
      this.persons = persons;
    }
}

我想要使​​用上面的代码进行休眠或映射,请任何人帮助我。如何将映射添加到该人员类(人员属性列表)。

4

1 回答 1

0

首先,我会使用 Set 而不是 List,因为不允许重复。此外,在您的数据库表中,您需要有一个 Person_Id(主键)和一个 Parent_Person_Id(引用 Person_Id PK 的外键)。这将确保一个人(父母)和一组人(关系中的孩子)之间的关系。一个例子是经理和员工。经理是个人,员工也是如此,但经理管理许多员工,在这种情况下,父母是经理,员工是孩子。

所以你的 Person 类看起来像:

public class Person {
    // normal properties/attributes
    Set<Person> persons;

    // getters and setters
    // addPerson to the Set method
}

然后,您可以使用以下映射:

<set name="persons" table="Person" lazy="false" cascade="all-delete-orphan" inverse="false">
    <key column="person_id"/>
    <one-to-many class="xxx.Person" />
 </set>

但是,我发现,鉴于您正在尝试实现自联接,以下文章可能对您自己有用。

于 2013-09-12T14:19:59.437 回答