当我重构代码库时,我通过像
这样的hibernate注释来实现@Column(name = "personal_email", nullable = true, length = 64)
private String personalEmail;
USER 实体中的实际上,如果 personalEmail 超过64个字符,则会出现数据截断错误。
我个人认为保留这样的注释是一种不好的做法。我认为我们不必通过数据库实体元信息来破坏我们的代码。
我的方法是删除长度和可为空的注释名称,并在发生任何约束违规时让DB通知。
我认为保留此类注释的唯一好处是它不会将错误数据传播到数据库级别。
我想知道你的建议......
无论如何,我将在DB中更改personalEmail的列宽。
答案 0 :(得分:2)
这取决于您更信任的系统。 Hibernate(Java)或您的数据库。
也许这个列表可以帮到你。
Hibernate的优势
Hibernate的优势
数据库的优势
您可以从JavaEE / JavaSE更改为任何其他系统。
必要时在运行时进行约束更改(建议不要小心)。
数据库的缺点
不在相同的代码库中。违规行为可能很难找到。
Java中的更多代码可翻译更具体的用户信息。数据库日志不是用户友好的。