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

时间:2010-11-03 15:01:22

标签: java database jpa types eclipselink

如果我使用JPA(EclipseLink)创建表,则String类型会产生varchar2(255)。我怎么能告诉JPA(通过Annotation)创建一个varchar2(20)属性。

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

这怎么可能?我必须手工完成吗?

4 个答案:

答案 0 :(得分:28)

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

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

答案 1 :(得分:18)

  

如果我使用JPA(EclipseLink)创建表,则String类型会产生varchar2(255)。我怎么能告诉JPA(通过Annotation)创建一个varchar2(20)属性。

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

@Column(length=20)
String someString;

答案 2 :(得分:5)

您可以在length注释上设置@Column,如下:

@Column(length = 20)

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

答案 3 :(得分:3)

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

请试试。