如何告诉 JPA 首选的数据类型

问题描述 投票:0回答:5

如果我使用 JPA (EclipseLink) 创建表,则 String 类型会生成 varchar2(255)。我如何告诉 JPA(通过注释)创建 varchar2(20) 属性。

如果我有一个 List JPA 创建一个 BLOB(4000) 但我想要一个 varchar2 (我的序列化对象的字符串很短)

这怎么可能?我必须用手做吗?

java database jpa types eclipselink
5个回答
39
投票

您需要使用@Column注解的columnDefinition属性。即

@Column(columnDefinition="varchar2(20)")

30
投票

如果我使用 JPA (EclipseLink) 创建表,则 String 类型会生成 varchar2(255)。我如何告诉 JPA(通过注释)创建 varchar2(20) 属性。

使用

columnDefinition
可能会破坏从一个数据库到另一个数据库的可移植性。对于字符串值列,更喜欢使用
length
元素(默认为 255):

@Column(length=20)
String someString;

7
投票

您可以在

length
注释上设置
@Column
,如下所示:

@Column(length = 20)

请注意,长度仅适用于文本列。对于数字,您可以使用

precision
scale


4
投票
@Column(name = "doc_number", columnDefinition = "varchar2(20)")

请尝试一下。


-1
投票

是否可以使用环境变量而不是硬编码来设置columnDefinition

© www.soinside.com 2019 - 2024. All rights reserved.