【问题标题】:Play framework: Migration issue "HHH000388: Unsuccessful: alter table <table name> add column _ebean_intercept binary(255)"播放框架:迁移问题“HHH000388:不成功:alter table <table name> add column _ebean_intercept binary(255)”
【发布时间】:2017-07-16 08:39:02
【问题描述】:

模型文件如下所示:

@Entity
public class Person {
  @Id
  @GeneratedValue(strategy=GenerationType.AUTO)
  public String id;
  public String name;
}

使用的数据库是 postgres,在应用迁移时出现此错误:

[error] o.h.t.h.SchemaUpdate - HHH000388: Unsuccessful: alter table Person add column _ebean_intercept binary(255)
[error] o.h.t.h.SchemaUpdate - ERROR: type "binary" does not exist

虽然在控制器级别它给出了这些错误:

1) Error injecting constructor, java.lang.NoClassDefFoundError: com/avaje/ebean/bean/EntityBean
at play.db.jpa.DefaultJPAApi$JPAApiProvider.<init>(DefaultJPAApi.java:39)
at play.db.jpa.DefaultJPAApi$JPAApiProvider.class(DefaultJPAApi.java:34)
while locating play.db.jpa.DefaultJPAApi$JPAApiProvider
while locating play.db.jpa.JPAApi
for parameter 0 at play.db.jpa.TransactionalAction.<init>(TransactionalAction.java:20)
while locating play.db.jpa.TransactionalAction

我的控制器看起来像:

public class Application extends Controller {

@Transactional
public Result addPerson() {
    Person person = Form.form(Person.class).bindFromRequest().get();
    JPA.em().persist(person);
    return redirect(routes.Application.index());
}
.....

什么可能导致这个问题,“_ebean_intercept”列的概念是什么?如果需要更多信息,请告诉我。

【问题讨论】:

    标签: java postgresql playframework


    【解决方案1】:

    您缺少 ebean 版本 2.7.2 的 jar,请参阅 ebean dependencies

    【讨论】:

    • 根据文档我有这两个条目: addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.0") lazy val myProject = (project in file (".")).enablePlugins(PlayJava, PlayEbean) 还有什么需要补充的吗?
    猜你喜欢
    • 2011-02-06
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 2023-02-03
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多