JPA vs JavaBeans验证(JSR 303)与您的解决方案:在持久化之前自动截断字段

时间:2013-03-08 16:17:13

标签: java database jpa bean-validation

我在数据库中有一些具有固定长度的字段。我是JPAJSR 303的新手。

JPA不允许我持有一个实体,该实体的字段大小比db中允许的大(这是我想要的);并使用@Column参数描述length仅对ddl生成有用。

此外,使用JSR 303的@Size描述参数的AFAIK只会在我希望修改字段时触发答案。

我想知道使用JSR 303,JPA或其他东西处理截断的标准方法是什么。

编辑:是否可以在JPA中启用一些自动截断?

祝你好运

1 个答案:

答案 0 :(得分:1)

就像JB Nizet建议的那样可以用setter来完成。但这不会使它成为严格的Java Bean。

您也可以在数据库中实现它,但这会使您的实现不那么便携。

最好的方法是将此逻辑保留在bean或DB之外。即在您的应用程序逻辑中。

<强>更新

如果你需要在JPA中进行截断,请查看@EntityListeners和回调。 http://docs.jboss.org/hibernate/orm/4.0/hem/en-US/html/listeners.html