【问题标题】:CRUD module Play! 1.2.4CRUD 模块 玩! 1.2.4
【发布时间】:2013-02-24 15:28:38
【问题描述】:

我正在使用 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.  

对此有什么想法吗?

【问题讨论】:

    标签: jpa playframework crud


    【解决方案1】:

    模型已经有一个 ID。

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

    【讨论】:

    • 是的,经过多次测试和搜索,现在它已修复。 @Entity public class MyEntity extends GenericModel { @Id @GeneratedValue (strategy = GenerationType.AUTO) public Long id;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多