Tag: ebean

在插件中使用BeanPersistAdapter

为了在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将BeanPersistAdapter放在models目录中,那么派生自BeanPersistAdapter的类只会介入插入/更新/删除操作。 那么有没有办法告诉适配器模型(应该插入/更新/删除它应该干预的动作)在哪里?

如何在Ebean中对相关实体进行排序?

我正在使用Play Framework和Ebean ORM。 说,我有2个相关的实体类(Card.java和FinalMark.java) Card.java @Entity public class Card extends Model { private static final long serialVersionUID = 1L; @Id . . . @OneToMany(mappedBy = “card”) public List finalMarks; . . . public static Finder find = new Finder(Integer.class, Card.class); } FinalMark.java @Entity public class FinalMark extends Model { private static final long serialVersionUID = […]

无法在Play 2中使用多个ebean数据库

我们正在使用Play Framework 2.0.3建立一个稍微复杂的项目。 我们需要访问几个数据库(预先存在),并希望使用框架内置工具(即EBean)来实现。 我们尝试在“models”包中创建所有模型类,然后将每个类的FQN映射到application.conf中相应的EBean属性: ebean.firstDB=”models.ClassA,models.ClassB,models.ClassC” ebean.secondDB=”models.ClassD” ebean.thirdDB=”models.ClassE,models.ClassF” 这似乎不起作用: PersistenceException: Error with [models.SomeClass] It has not been enhanced but it’s superClass [class play.db.ebean.Model] is? (You are not allowed to mix enhancement in a single inheritance hierarchy) marker[play.db.ebean.Model] className[models.SomeClass] 我们检查并重新检查,配置正常! 然后,我们尝试为每个数据库模型类使用不同的Java包,并在application.conf中相应地映射它们: ebean.firstDB = “packageA.*” ebean.secondDB = “packageB.*” ebean.thirdDB = “packageC.*” 这在从数据库中读取信息时工作正常,但是当您尝试保存/更新对象时,我们得到: PersistenceException: The default EbeanServer has […]

在我的Play应用程序中使用Ebean / JPA,如何删除OneToOne关系中的对象?

我有以下课程: import play.db.ebean.Model; import javax.persistence.*; @Entity public class A extends Model { @Id private int id; /* Other irrelevant properties */ @OneToOne(cascade = CascadeType.ALL, optional = true) private B b; } import play.db.ebean.Model; import javax.persistence.*; @Entity public class B extends Model { @Id private int id; /* Other irrelevant properties */ @OneToOne(mappedBy = “b”) private […]

Play Framework 2.1(Java)eBean @Encrypted Annotation Errors

我正在尝试在字符串字段上为数据库模型使用eBean @Encrypted批注。 文档使它看起来很简单,但是我在浏览器中使用内置的H2内存数据库获得了一个非常模糊的运行时错误: package models; import java.util.*; import javax.persistence.*; import play.db.ebean.*; import play.db.ebean.Model.Finder; import play.data.format.*; import play.data.validation.*; import com.avaje.ebean.*; import com.avaje.ebean.annotation.*; @Entity public class Test extends Model { @Id public Long id; @Encrypted public String identifier; } 生成与@Encrypted批注相关的以下运行时错误: Unexpected exception RuntimeException: Error reading annotations for models.Test No source available, here is the exception stack trace: […]

Play Framework – 如何从超类inheritance?

我有一个扩展Model的User类,以及我想扩展User类的两个类。 User.java: @Entity @Table(name = “users”) public class User extends Model implements RoleHolder { private static final long serialVersionUID = 1L; @Id public Long id; … Driver.java: public class Driver extends User { … Customer.java: public class Customer extends User { … 编辑需要直接访问所有三个实体。 换句话说,我有用户,客户和司机; 客户和驱动程序碰巧共享用户的所有属性。 因此,我需要有一个有效的用户实体以及客户和驱动程序。 我需要能够获得所有用户(包括客户和驱动程序)的列表。 我无法弄清楚如何在Play中使用ebean来完成这项工作。 我怎样才能做到这一点?

如何在Maven中启用Ebean Enhancement?

我一直在使用Avaje.org ebean ORM层,但我不明白如何使用Maven启用“Ebean v2.6.0用户指南”中描述的字节码增强function。 我在Avaje.org主页上找到了一个配置示例 ,但它不起作用。 GitHub上的演示Maven样板也没有。 救命!

Ebean或锡耶纳有多成熟?

在上一次我听到很多关于hibernate的抱怨。 事实上,我对hibernate也有一些痛苦的经历。 所以我读到了Ebean和锡耶纳 。 两者都有有趣的方法。 不幸的是,数据库访问层很容易编写,但是如果你的项目增长并且你必须处理好的数据库表,你就会知道它们是否好。 所以评估这样一个工具真的很难。 Hibernate是众所周知的,你可以肯定你可以解决它的问题。 有时你需要学习很多,但你可以解决它。 Ebean怎么样? 有没有真实的应用程序? 支持哪些数据库? 它可靠吗? 在搜索了一下后,我发现有更多的ORM框架,那么至少有一个可靠的框架吗?

Play Framework:PersistenceException:该类型不是注册实体? (Ebean)

我正在关注Java的Play Framework 2.0教程,并在尝试保存ebean模型时遇到此错误( task.save() )。 [PersistenceException:类型[class models.Task]不是注册实体? 如果没有明确列出要使用的实体类,Ebean将在类路径中搜索它们。 如果实体位于Jar中,请检查ebean.properties文件中的ebean.search.jars属性或检查ServerConfig.addJar()。]

使用Play Framework 2.1.x的多个数据库

我有2个数据库需要连接。 我可以在application.conf文件中轻松连接到它们,如下所示: db.default.driver=org.postgresql.Driver db.default.url=”jdbc:postgresql://localhost/db1″ db.default.user=postgres db.default.password=”password” db.secondary.driver=org.postgresql.Driver db.secondary.url=”jdbc:postgresql://localhost/db2″ db.secondary.user=postgres db.secondary.password=”password” ebean.default=”models.db1.*” ebean.secondary=”models.db2.*” 我在这些包中有我的模型类,并且DDL正确生成表。 问题在于实际使用这些实体。 任何不在“默认”包中的内容都会抛出此错误(使用辅助数据库中的Users表作为示例) 如果我尝试查询表的所有行: List users = Users.find.all(); 它抛出此错误: [PersistenceException: models.db2.Users is NOT an Entity Bean registered with this server?] 即使我100%确定后端中有Users表,它是DDL工作的注册表并使该表正常,我正在导入正确的类。 我需要某种方法来查询不在默认包中的模型类吗? 编辑:我意识到堆栈跟踪显示它正在尝试使用DefaultServer。 如何让它使用辅助服务器? at com.avaje.ebeaninternal.server.core.DefaultServer.createQuery(DefaultServer.java:989) ~[avaje-ebeanorm-server.jar:na] at com.avaje.ebeaninternal.server.core.DefaultServer.createQuery(DefaultServer.java:946) ~[avaje-ebeanorm-server.jar:na] at com.avaje.ebeaninternal.server.core.DefaultServer.find(DefaultServer.java:982) ~[avaje-ebeanorm-server.jar:na] at play.db.ebean.Model$Finder.all(Model.java:254) ~[play-java-ebean_2.10.jar:2.1.3]