如何告诉JPA首选的DataType

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

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

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

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

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

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

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

 @Column(length=20) String someString; 

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

 @Column(length = 20) 

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

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

请试试。