布尔字段始终为真

20 浏览
0 Comments

布尔字段始终为真

我的字段看起来是这样的:\n

@Column(columnDefinition = "Number(1,0) default '1'")
protected Boolean developersVisible;

\n当我从数据库中获取对象时,值总是true。无论数据库中是什么(null、0、1)\n我使用的是Oracle数据库\n问题已解决!\n当我通过sqldeveloper更改值时,我没有提交\n我接受了Óscars的答案,因为它真的很有帮助

0
0 Comments

问题的出现原因:

从上述对话中可以看出,问题的出现是因为在使用Oracle数据库时,无法直接创建一个Boolean类型的字段。而在这个问题中,使用了一个columnDefinition来模拟一个Boolean类型的字段,但是这样会创建一个对数据库的依赖关系。

解决方法:

根据对话中的回答,可以采用以下解决方法:

1. 尝试使用其他的列定义,例如使用CHAR类型来代替Boolean类型。

2. 参考提供的链接,查看在Oracle数据库中如何处理Boolean类型的字段。

3. 修改问题描述,明确说明不希望有对数据库的依赖关系,这样可以避免使用columnDefinition模拟Boolean字段,从而解决问题。

从这个问题中可以看出,在使用Oracle数据库时,无法直接创建一个Boolean类型的字段,需要采用其他方法来模拟实现。并且,在解决问题时需要注意避免对数据库的依赖关系。以上提供的解决方法可以帮助解决这个问题。

0
0 Comments

问题的原因是使用了columnDefinition属性,这会影响字段的映射。而default 1部分解释了为什么始终获得true值。解决方法是避免使用columnDefinition,除非必要,否则会影响代码的可移植性。此外,该字段在调用构造函数时将设置为true,这与JPA或持久性无关,这是Java处理属性初始化的方式。因此,问题可能出现在代码的其他地方。

0