如果我们使用@OneToMany注释,我们是否必须在db中本地定义一对多关系

时间:2014-10-07 07:50:31

标签: java hibernate postgresql

我正在使用hibernate 3.3.1以及PostgreSQL 9.3,我编写了以下映射:

@Entity
@Table(name = "player_account")
public class PlayerAccount {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    @ManyToOne(targetEntity = Player.class, fetch = FetchType.EAGER)
    @JoinColumn(name="player_id")
    private Player player;
    //GET, SET methods
}

问题是,当我们创建表时,我们是否必须在数据库中指定多对一的关系?我的意思是通过以下方式定义引用:

CREATE TABLE player_account (
  SERIAL UNIQUE,
  player_id integer REFERENCES players
);

1 个答案:

答案 0 :(得分:1)

不,你不需要在数据库中定义;但是该外键列应该出现在表中。即player_id应存在于player_account表中。