Я хочу создать таблицу Лицом, использующим JPA, требуется, чтобы у человека должно было быть поле типа Person, чтобы представлять родственника. У человека может быть родственник (другой человек), но он не является обязательным.Self Присоединиться к JPA
Я действительно запутался в том, как делать мои сопоставления. Я не уверен, может ли ключевое слово помочь мне здесь.
Я хотел бы понять, какой будет наилучший подход. Это то, что я сделал, но я думаю, что это неправильно. Может кто-нибудь помочь мне исправить это, а также объяснить мне, как это должно работать?
версия с использованием аннотаций
//DEFINE OneToOne Relationships (SELF JOIN-No mandatory)
@Entity class Person {
@Id
private long identificator;
private String name;
@OneToOne(targetEntity=Person.class mappedby="this")
private Person soulmate;
}
версия с использованием дескриптора развертывания
<persistence-unit-metadata>
<entity-mappings>
<entityclass = “packgagename.Person”>
<attributes>
<id name="identificator"/>
<column name="name"/>
<one-to-one name="soulmate" targetEntity="packgagename.Person" mappedby="this"/>
</attributes>
</entityclass>
</persistence-unit-metadata>
Может ли человек стать половинкой больше, чем один? – perissf
@perissf Нет, что не возможно – sfrj
Я не знаю, как создать это сопоставление из памяти, но если у вас есть настройка БД, попробуйте использовать инструменты спящего режима для обратной инженерии БД и создания объектов jpa: http: // www .hibernate.org/подпроекты/tools.html – Vladimir