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;
}

这是我的课。

这是我尝试将模型保存到数据库时的错误。

在此处输入图像描述

我将不胜感激任何帮助!非常感谢。

编辑:表结构在这里 在此处输入图像描述

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

它强制您将模式直接写入 sequenceName,而不是使用 SequenceGenerator 注释中的模式字段。

于 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 {

正如 Leo 所说,这种策略适用于现场和课堂上的注释。

于 2015-07-10T03:45:29.260 回答