数据库生成的属性不可用

我在一个基于Kotlin的项目中工作,它迫使我处理任何可能为null的属性。 在不受欢迎的情况下找出可能的空位是很好的; 但是我看到这么多了?. s和.!! s为数据库生成的属性,例如ID。 也许我在滥用这些运营商?

是否有任何约定标记属性不可空,但仍然有数据库生成值在这里? 如果我查找一个对象假设DB生成的值不再为空是安全的。 虚拟机可以被知道吗? 也许通过框架或语言提供的一些注释?

如果你的id是由数据库生成的,那么它是可以为空的,因为JVM /编译器/ IDE没有办法知道你的实体是否已经被保存了。

你可以做的是实现额外的方法,保证通过抛出exception返回非空值,否则。