如何删除数据库列中的尾部空格?

时间:2009-02-27 08:58:46

标签: hibernate validation data-binding jpa

我有一个EJB 3 Entity bean,它有一个带有注释的String属性:@Column(unique = true)。该值是从JSF页面设置的。

只要用户不添加空格,添加输入字段的末尾,一切正常。在这种情况下,“someName”和“someName____”被视为不唯一,并存储在数据库中。是否有一种方便的方法来删除应用程序域中的尾随(和前导)空格,或者在数据库域中完成此操作?

在行尾有一个SQL Server 2008,我使用Hibernate进行ORM。

将您的代码重新发布到开发服务器可以创造奇迹抱歉^^

2 个答案:

答案 0 :(得分:3)

正如你在对Mehrdad的回答中所说的那样,你可以控制源代码,我强烈建议你找出你对trim()的号码有什么问题,而不仅仅是黑客攻击。

你可能在做什么

public void setMyString(String myString) {
    myString.trim();
    this.myString = myString;
}

你应该使用trim()的返回值? (记住Java字符串是不可变的。)

public void setMyString(String myString) {
    this.myString = myString.trim();
}

(请根据需要添加空检查。)

答案 1 :(得分:1)

如果您不想在将字符串提交到服务器之前修改应用程序以修剪字符串。你可以:

  • 如果使用存储过程插入数据,请修改存储过程并使其修剪字符串
  • 使用触发器修剪字符串