我是 Play 框架的新手。我正在使用 play 1.2.4 和 Postgres 9.1.1。这是我的代码:
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 会自动生成“用户”表。 name
列被定义为 charactervarying(255)
,而不是我所期望的 charactervarying(20) NOT NULL
。
Column | Type | Modifiers
-------------+------------------------+-----------
id | bigint | not null
name | character varying(255) |
由于我使用的是 validateAndSave()
方法,并且我需要同时存在 @Required
和 @MaxSize
注释。我还可以使用 @Column(nullable=false, length=20)
注释,该注释本身不适用于 play 的 validateAndSave()
方法,但在这种情况下我最终会得到“重复”的注释。
最佳答案
@MaxSize
是验证注释,而不是 JPA 注释。
您需要使用
@Column(length=20)
关于java - Play框架-数据库表生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898914/