当我保存Java文件时,我的Eclipse会自动执行一些代码清理操作,其中包括在可能的情况下向private
字段添加final
。
这会与Hibernate将实体属性注入私有字段的能力发生冲突吗?
@Id
private final Long id = null; // Eclipse made this "final"
// but Hibernate needs to set the id
我应该关闭这个保存操作吗?
更新:我已经测试了应用程序,并使用调试器查看了它,Hibernate确实重置了“final”字段,因此事情继续正常运行。但是这能够保证工作吗?例如,没有VM或编译器优化依赖于字段真正是最终的。那些可能会破坏。另一方面,通过反射设置private
字段似乎是一种受支持的场景,因此相同的思路可能也适用于final
?