CRUD 模块 玩! 1.2.4

Posted

技术标签:

【中文标题】CRUD 模块 玩! 1.2.4【英文标题】:CRUD module Play! 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.  

对此有什么想法吗?

【问题讨论】:

【参考方案1】:

模型已经有一个 ID。

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

【讨论】:

是的,经过多次测试和搜索,现在它已修复。 @Entity public class MyEntity extends GenericModel @Id @GeneratedValue (strategy = GenerationType.AUTO) public Long id;

以上是关于CRUD 模块 玩! 1.2.4的主要内容,如果未能解决你的问题,请参考以下文章

在 Play 1.2.4 中覆盖现有的 CRUD 模块

如何在 Play 中覆盖 CRUD 标签!框架 1.2.4

播放 1.2.4 CRUD:基​​于模型操作 UI

使用 amnah 身份验证后,用户模块的后端 crud 显示 Yii2 用户模块而不是用户 CRUD

如何为 Laravel 模块架构应用 CRUD 生成器?

如何安全地删除用 yo (mean.js) 构建的 CRUD 模块 [关闭]