如果我使用JPA(EclipseLink)创建表,则String类型会产生varchar2(255)。我怎么能告诉JPA(通过Annotation)创建一个varchar2(20)属性。
如果我有一个List JPA创建一个BLOB(4000)但我想要一个varchar2(我的序列化对象的字符串很短)
这怎么可能?我必须手工完成吗?
答案 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仅适用于文本列。对于数字,您可以使用precision
和scale
。
答案 3 :(得分:3)
@Column(name = "doc_number", columnDefinition = "varchar2(20)")
请试试。