5

データをデータベースのモデルに保存しようとすると、このエラーが発生します。

@Entity
public class User extends Model {
   @Required
   public String name; 
   @Email
   public String email; 
   @Required @MaxLength(value=10)
   public String username;
   @Required @MinLength(value=4)
   public String password;
   @Id 
   public int id;
}

これは私のクラスです。

これは、モデルをdbに保存しようとしているときのエラーです。

ここに画像の説明を入力してください

私は助けのためにどんな努力にも感謝します!どうもありがとう。

編集:テーブル構造はここにあります ここに画像の説明を入力してください

4

3 に答える 3

10

ebeanでは、IDに物理的に名前を付けて注釈を付ける必要があると思います。バッキングシーケンサーの名前も教えなければならないかもしれません(私は覚えていません)。これはそれを行う方法を示しています。

于 2012-06-29T11:20:57.467 に答える
2

これは私のために働いた:

@Entity
@Table(name = "table", schema = "schema")
public class Bean extends Model{

   @Id
   @Column(name = "idcolumn")
   @SequenceGenerator(name="gen", sequenceName="schema.table_idcolumn_seq",allocationSize=1) 
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "gen")
   private int id;
}

SequenceGeneratorを使用する場合は、Hibernateのこのバグに注意してください:https ://hibernate.atlassian.net/browse/HHH-7232

SequenceGeneratorアノテーションのスキーマフィールドを使用する代わりに、スキーマをsequenceNameに直接書き込む必要があります。

于 2014-07-10T06:53:01.253 に答える
1

これはクラスアノテーションで私のために働きました:

@SequenceGenerator(name = "SEQUENCE_NAME", sequenceName = "PST_BUSINESS.S_BUSINESS_DOMAIN")
@Entity
@Table(name = "TB_BUSINESS_DOMAIN", schema = "PST_BUSINESS")
public class PstBusinessDomain extends PstAbstractBaseMappedEntity {

レオが言ったように、この戦略はフィールドとクラスの注釈に有効です。

于 2015-07-10T03:45:29.260 に答える