当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot中未自动创建数据库

闾丘康安
2023-03-14

我有一个 Spring 引导 API,它使用 jpa 和 postgresql,并在我运行应用程序时自动创建表。

但出现以下错误消息:

> 
Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.globalsys.apicep.model.Cep.Cidade in com.globalsys.apicep.model.Cidade.ceps
    at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:844) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:795) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:53) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1693) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1661) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:286) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) ~[spring-orm-5.3.1.jar:5.3.1]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.3.1.jar:5.3.1]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-5.3.1.jar:5.3.1]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]

这是我的应用程序。属性

server.port=8080
spring.datasource.url=jdbc:postgresql://localhost:5432/dbcep
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.username=postgres
spring.datasource.password=romulo
spring.jpa.open-in-view=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false

共有1个答案

何星鹏
2023-03-14

好消息!问题是mapped by属性中的一个引用,我一开始觉得没什么问题。

在 OneToMany 中,我以这种方式引用了表格本身!

@OneToMany(mappedBy = "Cidade", cascade = CascadeType.ALL)
    private List<Cep> ceps;

事实证明,您不能参考表格本身!相反,您需要引用关系另一方的财产,即关系的所有者!

 @ManyToOne
    private Cidade cidade;

在Cep类模型中!

 类似资料:
  • 当应用程序启动时,我正在尝试创建mysql数据库。我尝试了波纹管配置,但无法实现,如果有人对此有想法,请告诉我,

  • 问题内容: http://www.vaannila.com/spring/spring-hibernate- integration-1.html 在阅读本教程时,他们没有提到在数据库中创建表的任何内容。一旦我指定了表和字段,Hibernate会自动处理它吗? 这是我的bean配置。 问题答案: 您的hibernate.hbm2ddl.auto设置应该确定所创建的数据库(选项为,,或者)

  • 我正在使用Spring Boot创建一个访问数据库的简单web应用程序。通过在中设置属性,我利用了DataSource的自动配置功能。这一切都很出色,而且非常快--伟大的工作伙计们@Spring! 我公司的政策是不应该有明文密码。因此,我需要对进行加密。经过一番深入研究,我决定创建一个实现,该实现创建一个jasypt,如下所示: 然后,我用文件将其打包到它自己的jar中,如下所示: 当在maven

  • 问题内容: 我正在使用PostgreSQL和Spring 4,希望我的应用在运行时自动创建数据库。 我的实体类是: HibernateConfig.java application.properties 但是,当我运行SQL访问表User时,将出现错误:表’User’不存在。 如何使Hibernate自动创建数据库? 问题答案: 该物业将为您解决问题。创建SessionFactory时,它将自动验

  • 我正在使用PostgreSQL和Spring 4,并希望我的应用程序在运行时自动创建数据库。 我的实体类是: HibernateConfig。Java语言 application.properties 但当我运行SQL访问表User时,会出现错误:表“User”不存在。 如何使Hibernate自动创建数据库?

  • 我已经尝试了一切我知道但不能解决这个问题 运行输出 : 在调试模式下启动 moto g 40 融合上的利布\主.飞镖...正在运行 Gradle 任务“组装演示”...√ 已构建版本\app\outputs\flutter-apk\app-debug.apk.D/颤动定位服务(30742):正在创建服务。D/颤振定位服务(30742):绑定到位置服务。调试服务侦听 ws://127.0.0.1:5