2013-06-22 2 views
0

У меня есть лицо Лицо с отношением к другому человеку (наставнику). Этот человек может быть null. Я думал, что только аннотация аннулирует мой наставник. Если я удалю аннотацию ManyToOne, наставник не будет подключен.Сущность без ограничения

@Entity 
public class Person extends Model { 

    @Id 
    @Constraints.Required 
    @Formats.NonEmpty 
    public Integer id; 

    @ManyToOne 
    @Constraints.Required 
    public User user; 

    @Constraints.Required 
    public String firstName; 

    @Constraints.Required 
    public String lastName; 

    @ManyToOne 
    public Person mentor; 

    ... 

Как я могу получить лицо без наставника?

ответ

1

Использования в @ManyToOne аннотации на самом деле «инструктирование» у поставщика JPA-й считает, что Person таблицы/отношение имеет внешний ключ к нему (это модель 1: п отношения б/п лица с наставниками и а внешний ключ не может быть нулевым), но из вашего вопроса я вижу, что ваши потребности в бизнесе не нуждаются в 1: n per se, поэтому просто удалите аннотацию @ManyToOne, и на случай, если у человека есть наставник, проведите это отношение вручную в конструкторе сущности JPA или посредством метода setter

+0

UNIT-тестирование, тестирование UNIT! Acctualy может быть нулевым. Я видел это в тесте. Наставник id вернулся с mentor.id -1. Это была первопричина. Если я удалю много-к-одному, он не будет связан с наставником – myborobudur