더 큰 엔티티의 필드로 더 작은 클래스를 임베드하려고 시도하고 있으며, 과거에 연극에서 사용했던 것입니다! 2.1하지만 지금은 스키마 생성 중에 Ebean에서 오류가 발생합니다. 여기 Playframework에서 서브 클래 싱을 지원하지 않는다고 말하는 이유는 무엇입니까?
내 클래스 (공상 아주 간단 Nothing) 인 경우 :@Embeddable
public class Pricing implements Serializable {
private Long value;
private String currency;
//getters and setters
}
나는 이런 식을 포함하는 것을 시도하고있다 :
@Entity
public class MyEntity extends Model {
@Id
@GeneratedValue
private Long id;
@Embedded
private Pricing priceProposed;
//getters and setters
}
이 무엇을 달성하려고하는 것은 보이는 테이블 이 같은 것
----------------------------------------------------
| id | priceProposed.value | priceProposed.currency|
----------------------------------------------------
| 1 | 200 | USD |
| 2 | 1200000 | JPY |
----------------------------------------------------
내가보기에 어려운 일은 없습니다. 그러나 서브 클래 싱이 더 이상 지원되지 않는다는 것을 언급하는 다음 오류가 나타납니다. 그러나 나는 이것이 subClassing으로 자격이 있다는 것을 믿지 않습니까, 아니면 완전히 잘못 되었습니까?
javax.persistence.PersistenceException: Entity type class models.product.Pricing is not an enhanced entity bean. Subclassing is not longer supported in Ebean
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.checkSubclass(BeanDescriptorManager.java:1482)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1433)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1150)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1070)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.createEmbedded(BeanDescriptorManager.java:475)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readEmbeddedDeployment(BeanDescriptorManager.java:498)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:234)
at com.avaje.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:114)
at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:204)
at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:65)
at com.avaje.ebean.EbeanServerFactory.create(EbeanServerFactory.java:58)
at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:79)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:88)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:88)
at scala.collection.immutable.List.foreach(List.scala:318)
at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:88)
at play.api.Play$$anonfun$start$1.apply(Play.scala:88)
at play.api.Play$$anonfun$start$1.apply(Play.scala:88)
at play.utils.Threads$.withContextClassLoader(Threads.scala:18)
at play.api.Play$.start(Play.scala:87)
at play.api.Play.start(Play.scala)
at play.test.Helpers.start(Helpers.java:359)
at framework.AbstractPlayApplicationTest.setup(AbstractPlayApplicationTest.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
누군가 무슨 일이 일어 났는지 말해 줄 수 있습니까? 이것과 관련된 것은 무엇입니까? 누군가 내가 뭔가 잘못하고있는 것을보고 있는가? (내가 마지막으로 Ebean + Play! 프로젝트를 시작한 이래로 1 년이 되었기 때문에 나는 정말 바보 같은 것을 잊어 버릴 수도있다)?