从jpa生成具有有限字符长度的表

时间:2012-07-13 14:29:40

标签: java jpa varchar longtext

我想用varchar(700)在数据库中创建一个文本字段(我想要最多700个字符)。 我试着像这样定义:

@Entity
@Table(name = "t_foo)
public class Foo {

@Column(unique = true, nullable = false)
@Id
private String idNational;

@Column(length=700)
private String comment;

...

表生成具有以下属性:

idNational varchar(255) NOT NULL

comment longtext NULL

我真的希望评论是varchar(700)。是否有理由将其作为一个长篇大论?有没有办法让它变成varchar?也许这是一个简单的问题,但我还没有找到解决方案!我是否必须使用DDL创建表?

谢谢!

2 个答案:

答案 0 :(得分:1)

您没有说明您正在使用哪个数据库/版本,但它听起来像是版本的MySQL,最大长度为255,用于varchar。最新版本支持更大的varchars。

由于您指定了值> 255,它使用longtext代替。

MySQL 5.0.3及更高版本支持varchars,长度为65,535 - 早期版本只有255。

答案 1 :(得分:-1)

JPA提供程序配置存在问题。 更好的解决方案是使用DDL创建表。