Playframework PersistenceException:[models.Task]出现错误。它没有得到增强,但它';s超类
我正在使用两个数据库,因此在表中保存数据对象时,出现以下错误: PersistenceException:[models.Task]出现错误。它没有得到增强,但它的超类[class play.db.ebean.Model]得到了增强?(不允许在单个继承层次结构中混合增强)标记[play.db.ebean.Model]类名[models.Task] 我使用的是两个Java类,一个是Task.class,另一个是Userdetails.class: Task.class:Playframework PersistenceException:[models.Task]出现错误。它没有得到增强,但它';s超类,playframework,ebean,Playframework,Ebean,我正在使用两个数据库,因此在表中保存数据对象时,出现以下错误: PersistenceException:[models.Task]出现错误。它没有得到增强,但它的超类[class play.db.ebean.Model]得到了增强?(不允许在单个继承层次结构中混合增强)标记[play.db.ebean.Model]类名[models.Task] 我使用的是两个Java类,一个是Task.class,另一个是Userdetails.class: Task.class: @Entity @Tabl
@Entity
@Table(name="third")
public class Task extends Model {
@Id
@Column(name="id")
private int id;
@Column(name="name")
private String username;
public static Finder finduser=new Finder<String,Task>(String.class,Task.class);
}
我尝试了stackoverflow的一些解决方案,但仍然不起作用。有些人喜欢:
1. @MappedSuperclass
2. ebean.dafault=model.*.*
有吗
你没有提到你正在使用的播放版本吗?
在播放2.2.3时,以下配置适用于我:
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"
db.default.user=xxx
db.default.password="xxx"
ebean.default="models.UserDetail"
db.secondary.driver=com.mysql.jdbc.Driver
db.secondary.url="jdbc:mysql://localhost:3306/secondary?characterEncoding=UTF-8"
db.secondary.user=xxx
db.secondary.password="xxx"
ebean.secondary="models.Task"
以下控制器代码将实体(按原样)正确保存到两个数据库:
public static Result index() {
UserDetail userDetail = new UserDetail();
userDetail.save();
Task task = new Task();
task.save("secondary");
}
请注意,我将服务器名称传递给models.Task
的save()
方法。这会告诉Ebean在保存时要使用哪个数据源
为什么您的实体字段是私有的而不是公共的?你是为了简洁而省略了getter/setter还是有其他原因?我之所以这么问是因为你能提供你的
模型吗?任务
实体代码和其他任何能提供更多上下文的东西吗?你好,多诺万·穆勒,我已经提供了详细信息,请检查,让我知道谢谢你,伙计,它正在为我工作。非常感谢……:)
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"
db.default.user=xxx
db.default.password="xxx"
ebean.default="models.UserDetail"
db.secondary.driver=com.mysql.jdbc.Driver
db.secondary.url="jdbc:mysql://localhost:3306/secondary?characterEncoding=UTF-8"
db.secondary.user=xxx
db.secondary.password="xxx"
ebean.secondary="models.Task"
public static Result index() {
UserDetail userDetail = new UserDetail();
userDetail.save();
Task task = new Task();
task.save("secondary");
}