0

私は Play! で Web アプリを開発しています。フレームワーク (1.2.4)。CRUD モジュールを正常にインポートし、MySQL DB を 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 DBには、5つのフィールドを持つ MyEntity というテーブルがあります。

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 に答える