为了在Play中使用Ebean执行前/后插入/更新/删除操作(isRegisterFor(Class<?> clazz)postInsert(BeanPersistRequest<?> request),...),我实现了一个类IndexAdapter extends BeanPersistAdapter

作品

- app

-- models
--- Car
--- Person
--- House
--- IndexAdapter

-- controllers
--- ...


一切顺利,直到我决定将其转换为Play插件(实际上是一个类以上)。

不起作用

- app

-- plugin
--- IndexAdapter

-- models
--- Car
--- Person
--- House

-- controllers
--- ...


从一个同事那里,我了解到,从BeanPersistAdapter派生的类只有将其放置在models目录中,才会进行插入/更新/删除操作。那么,有没有办法告诉适配器模型在哪里(应该干预哪些插入/更新/删除操作)?

最佳答案

如果需要,可以将类放在模块项目(http://www.playframework.com/documentation/2.1.x/SBTSubProjects)中

我在我的项目中做到了这一点。我有一个主要项目,有两个模块:
-通用模块(我的BeanPersistAdapter所在的模块)
-模型模块(我的所有模型类都在其中),这取决于公共模块
主要项目取决于模型模块。

这样做,您将拥有所需的相同内容,但是在模块中,而不在主项目的app文件夹中。

10-01 19:17