Я использую ниже One to one mapping
между Account and Company
.компанией таблицей foreign key 'account_id'
.Below является кодомHibernate один к одному отображению себя как один ко многому
@Entity
public class Company{
................
@OneToOne
@JoinColumn(name = "account_id")
private Account account;
................
}
@Entity
public class Account{
................
@OneToOne(mappedBy="account")
private Company company;
...............
}
Теперь, выше отображение означает, Для Account
, только один company
может быть связано с ним и наоборот.
Теперь строка таблицы учетных записей будет вставлена откуда-то еще, и для сохранения компании потребуется обновить один столбец таблицы счетов. Теперь запрос «Сохранить компанию» будет содержать сведения о компании и компания, к которой относится учетная запись. По первому запросу данные компании сохраняются в таблице компании с идентификатором учетной записи, но при последующих запросах для конкретного account id
новая строка вставляется в таблицу компаний, даже если для конкретного account id
должна быть создана только одна строка компании.
Я ожидал некоторого исключения, что только одна компания может быть связана с определенной учетной записью. Могу ли я узнать проблему?
Спасибо JB. Я добавил unique = true в свой объект спящего режима, например @JoinColumn (name = "account_id", unique = true) \t частный счет учетной записи; но все же это не сработало. Однако я не добавил уникальное ограничение на уровне базы данных. Итак, нужно ли добавлять уникальное ограничение на уровне базы данных? – Anand
Да, вы должны это сделать. Вот что объясняет мой ответ. атрибут 'unique = true' в аннотации используется только тогда, когда Hibernate генерирует схему базы данных. Он не используется во время выполнения. Поэтому, если вы не сгенерируете схему с Hibernate, это не служит никакой цели. –
Спасибо .. это сработало ... еще одна вещь, когда нам нужно применять такие ограничения на уровне гибернации или вообще нам это нужно, учитывая, что такие ограничения применяются на уровне базы данных. – Anand