使用hibernate和spring更新java
我在数据库中有一个可疑的表,我使用hibernate反向工程创建了一个bean。我需要做一个表格来更新这个嫌疑犯
我所做的是:
i.获取的可疑行(基于使用hibernate的id)
二,。在可疑的命名对象中设置
iii.将其作为spring窗体命令对象传递
它成功地将表中的数据显示在表单中
表中有一些字段是我通过一些逻辑硬编码设置的。表单标记中不存在这些字段。所以当我保存(使用hibernate中的更新函数)这个表单时。它将这些列的值设置为null
到目前为止,我感觉可能有两种解决方案:
- 在更新表单中为所有此类字段或
- 在更新时重新硬编码李>
哪一种更好?如果有其他方法可以做到这一点
# 1 楼答案
更适合您的方式是在数据库或hibernate like in this question中使用默认值:
将清理代码并使逻辑更清晰:
不管怎样,让我们来回答你的问题
:)
取决于应用程序的需求
如果获取这些字段的逻辑具有较高的计算成本,则可以使用隐藏字段来节省计算成本,但只要对这些数据进行了加密,这似乎不是您的问题
硬编码从来都不是学术编程之外的选项,但如果更新的字段可以使其固定值,则最好的选择是在更新之前再次生成此字段
更新:
那么是的,第二种选择对你更有利
为了澄清,也就是说,这将是硬编码:
但是如果你在表格中要求奖励,你有一个恒定的字段,比如:
更新实体时,可以每次重新计算,例如,税收奖励(未测试,请小心floating point error dividing)
这是在使用常量,而不是硬编码,常量是我们的朋友
;)
更新:安全性
关于安全有很多方法,简单一点?在服务器端保留不可更新的值可以完成这项工作,如果客户端需要,可以对它们进行双重验证(
javascript
/hibernate
),还可以(如果需要)加密以隐藏内容