@joincolumn 的 Hibernate 默认值

ban*_*nes 5 java hibernate jpa

我正在使用 jpa/hibernate

国家.java

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

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

用户.java

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

@NaturalId
@ManyToOne
@JoinColumn(name = "COUNTRY")
private Country country;
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在 User.java 中为 hibernate 中的国家/地区列设置 @joinColumn 的默认值?

Gra*_*ray 1

有没有办法可以在 User.java 中为 hibernate 中的国家/地区列设置 @joinColumn 的默认值?

您可以使用columnDefinition字段,@JoinColumn但这取决于数据库,这不是最佳选择。

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

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

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