2013-02-24 2 views
0

Я разрабатываю webapp с Play! Рамки (1.2.4). Я модуль CRUD импорта успешно, и подключен MySQL DB с JDBC.I've создали модель, как это:CRUD модуль Play! 1.2.4

@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 использует поле autogenerated id, но я хочу, чтобы этот автогенерированный идентификатор был полем идентификатора MyEntity.

Log сказал:

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

Любая идея по этому поводу?

ответ

0

Модель уже имеет идентификатор.

Если вы хотите использовать свой собственный идентификатор, вместо этого вы должны расширить GenericModel.

+0

Да, после многих испытаний и поисков, теперь его исправлено. '@Entity общественного класса MyEntity расширяет GenericModel { @Id @GeneratedValue (стратегия = GenerationType.AUTO) общественности Long идентификатор;' – puagh77

Смежные вопросы