由于hibernate在带有oracle DB的字段上不能正常工作(在我看来;))@Column(nullable = false, unique = true)
,我想用这个来改变hibernate的行为。
问题是只应用了唯一约束,但没有应用非空约束,这意味着 oracle 可以存储一个空值,这可能导致应用程序中的错误......我试图将它与来自休眠验证器的 @NotNull 配对(这也是通常创建一个非空约束)但再次与唯一约束配对它不起作用。表级唯一约束也覆盖不为空。
因此,由于这似乎是一个已知问题,我想知道是否没有其他修复方法,然后手动创建缺少的约束。
是否有一个可行的选项来“劫持”休眠表创建/更新过程并生成该语句,即使用自定义注释?我应该自己覆盖@Column 注释吗?
有什么建议么?我们不想维护一个只包含所有非空约束的 sql 脚本。