Hibernate @joincolumn的默认值

时间:2016-10-05 02:07:44

标签: java hibernate jpa

我正在使用jpa / hibernate

Country.java

@Column(nullable = false, name = "REGION")
private String region;

@Id
@Column(nullable = false, name = "CODE")
private String Code;

User.java

@Column(nullable = false, name = "NAME")
private String name;

@NaturalId
@ManyToOne
@JoinColumn(name = "COUNTRY")
private Country country;

有没有办法在hibernate的country列中为User.java设置@joinColumn的默认值?

1 个答案:

答案 0 :(得分:1)

  

有没有办法在hibernate的country列中为User.java设置@joinColumn的默认值?

您可以使用columnDefinition field in @JoinColumn但这是依赖于数据库的,这不是最佳的。

@PrePersist方法可能是更好的解决方案:

public class User {
    ...
    @PrePersist
    public void prePersist() {
       if (country == null) {
           country = new Country("US");
       }
    }

对于其他替代示例,请参阅此答案:Setting default values for columns in JPA