Hibernate JoinColumn默认名称缺少'_id'

时间:2010-09-29 04:45:33

标签: hibernate jpa

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn (name = "account_id")
private Account account;

工作正常。

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn
private Account account;

结果:Exception : Missing column account in SomeSchema.SomeOwnerTable

JPA Spec说默认连接列名是

property name ( 'account') + '_' + target table primary key ( 'id' )

但看起来hibernate只搜索名为'account'的属性而不是'account_id'。

有任何评论吗?

1 个答案:

答案 0 :(得分:4)

我认为你可以安全地摆脱@JoinColumn注释 - 无论如何都有一个连接列。

此外,请确保您尚未配置特定的命名策略,这可能会覆盖默认行为。