2012-01-17 53 views
0

我是Play框架的新手。我使用的是Play 1.2.4和Postgres 9.1.1。这里是我的代码:Play框架 - 数据库表生成器

import javax.persistence.Entity; 
import play.db.jpa.Model; 
import play.data.validation.MaxSize; 
import play.data.validation.Required; 

@Entity 
public class User extends Model { 
    @Required 
    @MaxSize(20) 
    public String name; 
} 

当我运行我的应用程序时,play framework会自动生成'user'表。如我所料,name列被定义为character varying(255)而不是character varying(20) NOT NULL

Column | Type | Modifiers 
-------------+------------------------+----------- 
id | bigint | not null 
name | character varying(255) | 

由于我使用的方法validateAndSave(),我需要两@Required@MaxSize注释存在。我本来可以使用@Column(nullable=false, length=20)注释,它本身不适用于游戏的validateAndSave()方法,但在这种情况下,我最终会“复制”注释。

回答

2

@MaxSize是一个验证注释,而不是JPA注释。

您需要使用

@Column(length=20)