Mysql Java中的EBean-使用@MappedSuperclass进行继承

Mysql Java中的EBean-使用@MappedSuperclass进行继承,mysql,eclipse,playframework,ebean,mappedsuperclass,Mysql,Eclipse,Playframework,Ebean,Mappedsuperclass,我目前正在Ubuntu上用PlayFramework2.2.2编写一个新的Java项目。我试图建立一个非常简单的类层次结构,允许不同的db持久元素从一个公共BaseEntity类继承公共字段,例如id、created_at、deleted_at等,以避免重写同一个模板 我目前正在使用的示例如下所示 @Entity public class User extends BaseEntity { @Id public int id; @Constraints.Required

我目前正在Ubuntu上用PlayFramework2.2.2编写一个新的Java项目。我试图建立一个非常简单的类层次结构,允许不同的db持久元素从一个公共BaseEntity类继承公共字段,例如id、created_at、deleted_at等,以避免重写同一个模板

我目前正在使用的示例如下所示

@Entity
public class User extends BaseEntity {

   @Id
   public int id;

   @Constraints.Required
   public String email;

   @Constraints.Required
   public IUser.Status status;

   public String activationCode;

   public User()
   {
    ...
   }
}
为了练习,我创建了一个带有一个新属性name的简单基类。这很好:

@MappedSuperclass
public abstract class BaseEntity extends Model {

  protected String name;

  public String getName()
  {
    return this.name;
  }
  public void setName(String value)
  {
    this.name = value;
  }

  public BaseEntity()
  {

  }
}
现在,当BaseEntity类不包含name字段或getset参数时,EBean可以成功地将实体保存到数据库中。一旦我添加了带有getter和setter的字段,在尝试保存实体时,Play崩溃,出现以下异常:

java.lang.NoSuchMethodError:models.User.\u ebean\u getni\u name()Ljava/lang/String; 在models.User.\u ebean\u getField(User.java:1) 在com.avaje.ebeaninternal.server.reflect.EnhanceBeanReflect$Getter.get(EnhanceBeanReflect.java:162)

删除getset或将它们移动到基类会导致相同的异常。我在网上不知疲倦地寻找一些例子来说明我做错了什么,但还没有找到任何可以解决这个问题的方法。我相信这很简单。有人能帮忙吗


问候。

这对我很有用。我没有使用getter或setter。我在Play2.2上开发了它,现在已经在2.3上运行了。为了清晰起见,我删除了大部分字段。可能是因为名称字段被标记为受保护

@MappedSuperclass
public abstract class Member extends Model {

    @Id
    public Long id;
    public String businessName;
    public String webAddress;
..
}

@Entity
public class Supplier extends Member {

    public int minimumNoticeInHours;
    public int maximumNoticeInDays;
..
}

谢谢,我认为这可能与编译问题有关-当我手动添加它缺少的属性时,例如,_ebean_getni_name it compiled fine。我认为这些是自动生成的属性,由于某些原因,这些属性没有为基类正确生成。访问修饰符没有任何区别。现在我们已经转向一个更简单、问题更少的ORM!