我有Object类,它被映射到oracle数据库表。 在此类中,一列在数据库中具有默认值。我用过这个: @Column(name =“FK_STATUS”,nullable = false,columnDefinition =“int default 1”) 数据库中的列类型是Number。但我得到“无法在FK_status中插入null”错误。 请帮忙。
答案 0 :(得分:1)
由于我没有在你的行中看到任何语法错误,因此我不太了解H-3,因为我正在使用H-3。
这可能是一个修复,不完全是您的问题的解决方案。
使用variable
的默认值。
private Integer fkStatus= 1;
答案 1 :(得分:0)
columnDefinition将起作用
columnDefinition = "int default 1" (should be "default 1")
但您必须先重新创建数据库表。它会将列设置为将int值设置为int 1
好吧,您应该通过
重新创建数据库<强>的persistence.xml 强>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
或手动
update {TABLE}
set FK_STATUS = 1
where status is null;
alter table {TABLE} modify (FK_STATUS default 1 NOT NULL);
答案 2 :(得分:0)
@NGS,诸如unique,nullable,default等约束是JPA / Hibernate在创建表时使用的关键字。创建表后它没有任何意义。 例如,如果首先创建一个表,其中列是非唯一的,并且如果您计划通过提供注释来控制列的唯一性,则无效。
为表创建提供了所有这些元数据。
答案 3 :(得分:0)
我想在您的Hibernate-Mapping Column代码中做一些小修正,请参阅下面的
@Column(name = "FK_STATUS" ,nullable = false, columnDefinition = "int(10) default 1")
使用此功能并告诉我,如果这不适用于您的代码