0

我正在用 Play 开发一个网络应用程序!框架(1.2.4)。我已成功导入 CRUD 模块,并将 MySQL 数据库与 JDBC 连接起来。我创建了这样的模型:

@Entity

public class MyEntity extends Model {

    @Id
    @GeneratedValue (strategy=GenerationType.IDENTITY)
    public int id;

    public String name;
    public String phone;
    public String web;
    public String address;

    public MyEntity (String name, String phone, String web, String address) {
        this.name=name;
        this.phone=phone;
        this.web=web;
        this.address=address;
    }
}

localhost:9000/admin管理 CRUD 默认面板中,我尝试添加 MyEntity 的新对象,但不起作用:

PersistenceException occured : org.hibernate.exception.GenericJDBCException: could not insert: [models.MyEntity]

LogFail: object.save() (around line 152)

在我的 MySQL 数据库中,我有一个名为 MyEntity 的表,其中包含 5 个字段:

id INT (PK, NotNull, AUTO_INCREMENT);  
name VARCHAR;  
phone INT;  
web VARCHAR;  
address VARCHAR

不知道为什么它不起作用。我知道 JPA 使用自动生成的 id 字段,但我希望自动生成的 id 将是 MyEntity id 字段。

日志说:

[...]Caused by: java.sql.SQLException: Field 'id' doesn't have a default value.  

对此有任何想法吗?

4

1 回答 1

0

模型已经有一个 ID。

如果您想使用自己的 Id,则应改为扩展 GenericModel。

于 2013-02-25T06:57:52.550 回答