java在hibernate实体中保留DB约束是好的
当我重构代码库时,我遇到了hibernate注释,比如
@Column(name = "personal_email", nullable = true, length = 64)
private String personalEmail;
在用户实体中。。。实际上,如果personalEmail超过64个字符,就会出现数据截断错误
我个人认为,像这样保留注释是一种糟糕的做法。我认为我们不必通过数据库实体元信息破坏我们的代码
我的方法是删除长度和可为空的注释名称,并在任何违反约束的情况下让DB通知
我认为保留这种注释的唯一优点是它不会将错误数据传播到DB级别
我想知道你的建议
不管怎样,我会在DB中更改personalEmail的列宽
# 1 楼答案
这取决于你更信任哪个系统。Hibernate(Java)或数据库
也许这份清单会对你有所帮助
冬眠的优势
对冬眠不利
数据库的优势
您可以从JavaEE/JavaSE更改为任何其他系统
如有必要,在运行时进行约束更改(请注意,不建议这样做)
数据库的缺点
不在同一个代码库中。违规行为可能很难发现
用Java编写更多代码来翻译更具体的用户信息。数据库日志对用户不友好