gpt4 book ai didi

java - Hibernate 存储空字符串会在数据库中创建空白。

转载 作者:行者123 更新时间:2023-12-01 17:30:45 24 4
gpt4 key购买 nike

我使用 sybase db 和 hibernate 作为 ORM 工具,我正在处理 Person 对象,其中包含名称作为字符串变量,我在数据库端使用了 varchar 数据类型当我创建 Person 对象时

Person p=new Person();
p.setName(null);
session.saveOrUpdate(p);

这很好用

但是当我在名称中放入空字符串时,它会在数据库中创建空格。

Person p=new Person();
p.setName("");
session.saveOrUpdate(p);

为什么会发生这种情况?

任何建议将不胜感激..

最佳答案

它是数据库填充添加了空白,与 hibernate 无关。

引用

Manual link ,

“除非您将 string_rtruncation 设置为 on,否则 Adaptive Server 会将条目截断为指定的列长度,而不会发出警告或错误。有关详细信息,请参阅《引用手册》中的 set 命令。空字符串“”或 '' 存储为单个空格而不是 NULL。因此,“abc” + “” + “def” 相当于“abc def”,而不是“abcdef”。”

您可以做两件事:

  • 让您的应用程序显式插入 NULL(这类似于它应该这样做,因为空字符串不等于 NULL)
  • 在该表(或多个表)上放置一个插入/更新触发器截取空字符串并将其转换为NULL

关于java - Hibernate 存储空字符串会在数据库中创建空白。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193550/

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