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

问题描述 投票:0回答:1

任何人都可以建议我在这里缺少什么吗?启动 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);

        ...
    }

    ...

}
java hibernate jpa dropwizard
1个回答
0
投票

使用@ManyToOne(targetEntity = Entity.class)

© www.soinside.com 2019 - 2024. All rights reserved.