Hibernate. Отображение внешнего ключа по идентификатору - PullRequest
1 голос
/ 30 марта 2011

Я хочу создать отображение @ManyToOne между Acount и Record.Одна учетная запись может иметь много записей.Но я не хочу добавлять поле учетной записи в классе записи или наоборот.Не могли бы вы помочь мне описать это в аннотациях?

@Entity
public class Account {

  @Id
  ... getId();
}

@Entity
public class Record {

  @Id
  ... getId();

  @?????
  ... getAccountId();

}

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

Отображение сущностей в таблицы - это способ, которым обычно работает Hibernate, если вы не хотите использовать класс Account в записи, вы можете просто определить accountId как long (или int, в зависимости от того, что нормально) и не аннотировать его, если вам не нужен другой столбец.название.Но я бы предложил не делать этого.

0 голосов
/ 30 марта 2011

Если вы не хотите добавлять ограничения внешнего ключа в какую-либо из таблиц, вы можете создать отдельную таблицу с ограничениями, которая позволит вам создать отношение.

accountId | recordId
--------------------
 1        | 2
 1        | 3
 2        | 4

С JPA ...

@ManyToOne
@JoinColumn(table=TABLE_NAME_ABOVE,name="accountId")
public Account getAccount(){ ... }
...