jpa 引用未知实体:java.util.List

nfs0ujit  于 8个月前  发布在  Java
关注(0)|答案(1)|浏览(75)

有人能告诉我我错过了什么吗?启动dropwizard应用程序时出错。
错误:

web_1       | Exception in thread "main" org.hibernate.AnnotationException: @OneToOne or @ManyToOne on Resource.coordinates references an unknown entity: java.util.List
web_1       |   at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:97)
web_1       |   at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processEndOfQueue(InFlightMetadataCollectorImpl.java:1752)
web_1       |   at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processFkSecondPassesInOrder(InFlightMetadataCollectorImpl.java:1696)
web_1       |   at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1583)
web_1       |   at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278)
web_1       |   at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
web_1       |   at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
web_1       |   at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
web_1       |   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692)
web_1       |   at io.dropwizard.hibernate.SessionFactoryFactory.buildSessionFactory(SessionFactoryFactory.java:96)
web_1       |   at io.dropwizard.hibernate.SessionFactoryFactory.build(SessionFactoryFactory.java:49)
web_1       |   at io.dropwizard.hibernate.SessionFactoryFactory.build(SessionFactoryFactory.java:39)
web_1       |   at io.dropwizard.hibernate.HibernateBundle.run(HibernateBundle.java:62)
web_1       |   at io.dropwizard.hibernate.HibernateBundle.run(HibernateBundle.java:15)
web_1       |   at io.dropwizard.setup.Bootstrap.run(Bootstrap.java:200)
web_1       |   at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:42)
web_1       |   at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:85)
web_1       |   at io.dropwizard.cli.Cli.run(Cli.java:75)
web_1       |   at io.dropwizard.Application.run(Application.java:79)
web_1       |   at EdgeApplication.main(EdgeApplication.java:103)

资源类:

@Data
@Entity
@Table(name="EDGE_RESOURCE")
public class Resource {
    ...

    @ManyToOne
    private List<Coordinate> coordinates;

    ...
}

参考坐标类

@Data
@Entity
@Table(name="EDGE_COORDINATE")
public class Coordinate {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private double
                latitude,
                longitude;
}

它是dropwizard,带有dropwizard-guice。

public class EdgeApplication extends Application<EdgeConfiguration> {

    public static final HibernateBundle<EdgeConfiguration> hibernate = new HibernateBundle<EdgeConfiguration>(Coordinate.class, Session.class, Resource.class) {
        @Override
        public DataSourceFactory getDataSourceFactory(EdgeConfiguration configuration) {
            return configuration.getDatabase();
        }
    };

    @Override
    public void initialize(final Bootstrap<EdgeConfiguration> bootstrap) {
        bootstrap.addBundle(hibernate);

        ...
    }

    ...

}
h7appiyu

h7appiyu1#

use @ManyToOne(targetEntity = martity.class)

相关问题