Много-к-одному с формулой в Hibernate - PullRequest
0 голосов
/ 09 июня 2011

У меня есть следующие таблицы:

tableA: id[PK], name
tableB: id[PK], idTableA[FK], dateClosed

И моя объектная модель выглядит следующим образом:

class ObjectA {
    private Integer id:
    private String name;
    private ObjectB activeB;
}

class ObjectB {
    private Integer id;
    private ObjectA a;
    private Date dateClosed;
}

Итак, свойство activeB в ObjectA должен быть тем, чей dateClosed равен NULL (может быть только один ObjectB одновременно с нулевым dateClosed ).

Я застрял при написании отношения много-к-одному с правильной формулой для получения активного ObjectB ... Спасибо!

1 Ответ

0 голосов
/ 09 июня 2011

Кажется, что на самом деле это отношения один к одному между А и Б.

Ниже приведена Java EE 6; Я не знаю, есть ли большая разница в спящем режиме.

@Entity    
class ObjectA {
    @Id @GeneratedValue
    private Integer id:
    private String name;
    @OneToOne(mappedBy = "a")
    private ObjectB activeB;
}

@Entity
class ObjectB {
    @Id @GeneratedValue
    private Integer id;
    @OneToOne
    @JoinColumn(name = "idTableA")
    private ObjectA a;
    private Date dateClosed;
}

Что касается одного B с нулевым значением, я предполагаю, что он не может быть реализован в базе данных. Поэтому вам потребуется остальная часть вашего кода (нереляционная), чтобы позаботиться об этом аспекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...