您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在@Column JPA注释上进行设置时,length属性有什么作用?

在@Column JPA注释上进行设置时,length属性有什么作用?

持久性发生时,length是否进行任何形式的检查或截断,还是仅用于模式创建?

注释的length属性Column用于指定:

列长。(仅在使用字符串值的列时适用。)

并且仅在生成的DDL中使用。在您的示例中,结果列将作为生成VARCHAR(32)并且尝试插入更长的字符串将导致sql错误

为了进行验证,您可以从Bean验证API(JSR 303添加一个@Size(max=32)约束。我在此处提供了具有可运行测试的示例。

同时提供这两者Sizelength可能看起来是多余的,但是根据Bean Validation规范的附录D,对于持久性提供程序来说,生成Bean验证感知DDL不是必需的。因此,请使用lengthDDL @Size进行验证。

如果您有兴趣,只需将Bean验证实现放在JPA 2.0的类路径上。对于JPA 1.0,请参考此先前的答案:

您需要编写一个实体侦听器,并在上触发验证@PrePersist@PreUpdate甚至@PreRemove(有有效的用例)。有关 代码示例,请参见使用JPA 1.0 进行Bean验证

其他 2022/1/1 18:22:26 有645人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶