休眠。 id的外键映射

时间:2011-03-30 13:36:32

标签: java hibernate mapping foreign-keys

我想在Acount和Record之间创建@ManyToOne映射。一个帐户可以有很多记录。但我不想在Record类中添加Account字段,反之亦然。你能帮我在注释中描述这个吗?

@Entity
public class Account {

  @Id
  ... getId();
}

@Entity
public class Record {

  @Id
  ... getId();

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

}

2 个答案:

答案 0 :(得分:2)

将实体映射到表是Hibernate通常工作的方式,如果你不想在Record中使用Account类,你可以简单地将accountId定义为long(或int,取其中哪个)并且不注释它,除非你需要一个不同的列名称。 但我建议不要这样做。

答案 1 :(得分:0)

如果您不想将外键约束添加到任一表,您可以创建一个单独的表,其中包含允许您建立关系的约束。

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

使用JPA ......

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