У меня проблема с отношением внешнего ключа и его JPA-копией.Сопоставление первичного ключа как внешнего ключа с другой таблицей
В следующих таблицах. means_of_transport
- таблица с последовательной нумерацией. В других таблицах меньше записей с отображением их первичного ключа в качестве внешнего ключа для первичного ключа means_of_transport
. К сожалению, я не могу изменить модель данных.
Таблица means_of_transport
CREATE TABLE means_of_transport (
id INT PRIMARY KEY NOT NULL,
max_capacity INT
);
Таблица ocean_ship
CREATE TABLE ocean_ship (
means_of_transport_id INT PRIMARY KEY NOT NULL,
name VARCHAR(45) NOT NULL,
FOREIGN KEY (means_of_transport_id) REFERENCES means_of_transport (id)
);
CREATE INDEX fk_ship_means_of_transport1_idx ON ocean_ship (means_of_transport_id);
Есть несколько таблиц, кроме ocean_ship
с одной и той же ключевой структурой, но и других областях.
MeansOfTransport.java
@Entity
@Table(name = "means_of_transport")
public class MeansOfTransport extends Model {
@Id
public Integer id;
public Integer maxCapacity;
}
OceanShip.java
@Entity
@Table(name = "ocean_ship")
public class OceanShip extends Model {
@Id
@OneToOne
@JoinColumn(table = "means_of_transport", referencedColumnName = "id")
public MeansOfTransport meansOfTransport;
public String name;
}
Теперь каждый раз, когда я пытаюсь использовать OceanShip
в другом классе JPA как поле, я получаю эту ошибку: Error reading annotations for models.Classname
,
Я пропустил некоторые аннотации?
редактировать
Пример использования:
@ManyToOne
@Column(name = "ocean_ship")
public OceanShip oceanShip;
Полный трассировки стека:
play.api.UnexpectedException: Unexpected exception[RuntimeException: Error reading annotations for models.ContainerOrder]
at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:150) ~[play_2.10.jar:2.1.5]
at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:114) ~[play_2.10.jar:2.1.5]
at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:114) ~[play_2.10.jar:2.1.5]
at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:112) ~[play_2.10.jar:2.1.5]
at scala.util.Either$RightProjection.flatMap(Either.scala:523) ~[scala-library.jar:na]
Caused by: java.lang.RuntimeException: Error reading annotations for models.ContainerOrder
at com.avaje.ebeaninternal.server.deploy.parse.ReadAnnotations.readAssociations(ReadAnnotations.java:54) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1034) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:565) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:252) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:124) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:210) ~[avaje-ebeanorm-server.jar:na]
Caused by: java.lang.NullPointerException: null
at com.avaje.ebeaninternal.server.deploy.BeanTable.createJoinColumn(BeanTable.java:94) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.deploy.parse.AnnotationAssocOnes.readAssocOne(AnnotationAssocOnes.java:145) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.deploy.parse.AnnotationAssocOnes.parse(AnnotationAssocOnes.java:54) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.deploy.parse.ReadAnnotations.readAssociations(ReadAnnotations.java:45) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1034) ~[avaje-ebeanorm-server.jar:na]
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:565) ~[avaje-ebeanorm-server.jar:na]
Можете ли вы опубликовать полную ошибку? –
@SotiriosDelimanolis Я добавил полную трассировку стека – nkr