在数据库插入之前修剪空格
Posted
技术标签:
【中文标题】在数据库插入之前修剪空格【英文标题】:Trim spaces before database inserts 【发布时间】:2015-07-30 09:56:06 【问题描述】:我有一个网络应用程序,其中我需要使用休眠将数据插入数据库以实现多种功能。
但是我现在插入时忘记修剪空格,我希望所有未来的数据库插入都应该在修剪空格后完成。在所有控制器类中这样做的最佳方法是什么(我使用的是 spring mvc)。
我需要了解这种方法。
谢谢
【问题讨论】:
好吧,您有很多选择,您可以在数据库中为每个表使用触发器,或者为您的实体添加@PrePersist
和/或@PreUpdate
方法,甚至更改setters
(我无论如何都不会这样做)在实体中,例如:this.x = trim(x); docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/…
【参考方案1】:
因为您可能无论如何都使用 setter,所以您可以像这样编写您的 setter:
public void setName(String name)
this.name = (name != null) ? name.trim() : null;
【讨论】:
【参考方案2】:查看Spring Validation, Data Binding and Type Conversion 中提到的 StringTrimmerEditor,并在控制器代码中添加如下内容:
@InitBinder
public void initBinder(WebDataBinder binder)
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
【讨论】:
有人建议使用 AOP 方法。但我不知道我应该如何使用它?以上是关于在数据库插入之前修剪空格的主要内容,如果未能解决你的问题,请参考以下文章