首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Play Framework 2.4 Ebean Id生成

Play Framework 2.4 Ebean Id生成
EN

Stack Overflow用户
提问于 2015-06-26 18:48:28
回答 2查看 1.5K关注 0票数 3

到目前为止,我们一直在使用Play 2.3.9,现在我们正在迁移到Play 2.4.1,当我使用旧版本的Play时,保存实体工作,但使用新版本时,Id不会生成。我从头开始设置了一个新项目,并尝试实现它的工作,自动生成的数据库有一个自动递增的Id字段,而旧项目有一个使用序列的数据库。我一直在尝试配置play/ebean来使用序列,但到目前为止还没有成功。

我在这里看了一下http://www.avaje.org/topic-97.html,并试了试,但它仍然不起作用。如有任何建议,我们将不胜感激。

我的配置如下所示:

代码语言:javascript
复制
ebean.default.identityGeneration=sequence
ebean.default.supportsGetGeneratedKeys=false
ebean.default.supportsSequences=true
ebean.default.debug.sql=true

我还试着用

代码语言:javascript
复制
ebean.default.identityGeneration=generator

我直接把代码行放到了application.conf中,我还尝试了用ServerConfigStartup的方式来配置ebean,但是没有成功。

EN

回答 2

Stack Overflow用户

发布于 2015-06-26 20:18:43

不管怎样,我让它工作了,如果任何人有同样的问题,下面的方法可以解决它:

代码语言:javascript
复制
public class MyServerConfigStartup implements ServerConfigStartup {
@Override
public void onStart(ServerConfig serverConfig) {
    PostgresPlatform postgresPlatform = new PostgresPlatform();
    DbIdentity dbIdentity = postgresPlatform.getDbIdentity();
    dbIdentity.setSupportsGetGeneratedKeys(false);
    dbIdentity.setSupportsSequence(true);
    dbIdentity.setIdType(IdType.GENERATOR);
    serverConfig.setDatabasePlatform(postgresPlatform);
}

}

票数 6
EN

Stack Overflow用户

发布于 2018-03-19 05:15:56

将Rob的评论扩展为一个真实的答案:

Putting ebean.databasePlatformName=postgres8

conf/ebean.properties中,将强制Play 2.3默认使用PostgreSQL序列来生成in。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31071253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档