0
我的实体具有与另一个表具有一对一连接的字段。我如何设置该字段的默认值。我试图以这样的如何在@Entity对象字段中设置默认值
@Column(columnDefinition = "int default 5")
@OneToOne(cascade = CascadeType.ALL)
private Admin admin;
但我得到这个错误
@Column(s) not allowed on a @OneToOne
有没有办法来实现这一目标没有改变SQL表?
编辑:
改变了一些东西。现在我有这样的代码。
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "admin_id", referencedColumnName = "id", nullable = false, columnDefinition = "bigint(20) DEFAULT 5")
private Admin admin;
我还添加了@DynamicInsert
和@DynamicUpdate
但它仍然无法正常工作。我还想指出,这些Admin对象已经存在于数据库中,我不想再次创建它们。
你有没有''@JoinColumn(name =“xxx”)''? –
所以Admin表默认PK是5? – HRgiger
你应该通过从数据库中加载Admin对象来在你的构造函数中设置它,因为5可能不是每个环境中的pk。 –