gpt4 book ai didi

mysql - 从hibernate到mysql,默认值映射问题

转载 作者:可可西里 更新时间:2023-11-01 08:21:55 25 4
gpt4 key购买 nike

hibernate xml 映射文件不支持默认值。因此,当我尝试在 mysql 中创建具有默认值的列时,我运行 hibernate save() 方法而不设置列值。无法生成默认值。

我做了一些搜索。根据这篇文章: https://forums.hibernate.org/viewtopic.php?t=171&highlight=default+value&sid=84a014fd93dd9b680afc606f616ca4f6它说 hibernate 不支持默认值。我们可以改用触发器。

除了触发器,我们还有什么办法可以做到这一点?以及我们如何通过触发器来做到这一点

好的,我尝试做更多的搜索,我找到了答案:

ibernate does not support default values, you should either manager this using database triggers or assign default values in your domain.

但是如果我在我的域中分配默认值,在构造函数中说,我们有什么缺点吗?

谢谢!

最佳答案

我建议使用构造函数来设置对象的默认状态。 Hibernate 是一个 ORM。基本理念是保存您的对象。在 DBMS 端使用默认值可能会破坏整个概念,因为它可以将对象保存为无效状态。 (通过使字段值可以跳过 setter 方法)。

另一方面,当您实例化一个对象时,它的字段已经初始化(为 null 值或零或空字符串等)。Hibernate 不可能猜测您是想保存实际的 null 还是零,或者您想改用数据库的默认值。

当您谈论 DBMS 级别的默认值时,我假设您想到的是原始值。在 Java 端(在构造函数内或通过声明)初始化原始字段绝对没有缺点。

关于mysql - 从hibernate到mysql,默认值映射问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5692808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com