如果我使用 JPA (EclipseLink) 创建表,则 String 类型会生成 varchar2(255)。我如何告诉 JPA(通过注释)创建 varchar2(20) 属性。
如果我有一个 List JPA 创建一个 BLOB(4000) 但我想要一个 varchar2 (我的序列化对象的字符串很短)
这怎么可能?我必须用手做吗?
您需要使用@Column注解的columnDefinition属性。即
@Column(columnDefinition="varchar2(20)")
如果我使用 JPA (EclipseLink) 创建表,则 String 类型会生成 varchar2(255)。我如何告诉 JPA(通过注释)创建 varchar2(20) 属性。
使用
columnDefinition
可能会破坏从一个数据库到另一个数据库的可移植性。对于字符串值列,更喜欢使用 length
元素(默认为 255):
@Column(length=20)
String someString;
您可以在
length
注释上设置 @Column
,如下所示:
@Column(length = 20)
请注意,长度仅适用于文本列。对于数字,您可以使用
precision
和 scale
。
@Column(name = "doc_number", columnDefinition = "varchar2(20)")
请尝试一下。
是否可以使用环境变量而不是硬编码来设置columnDefinition