java - 创建名为“entityManagerFactory”的 bean 时出错,由 mappedBy 引用未知的目标实体属性引起
问题描述
我在代码中遇到了问题,就像我的代码中的一切都很好,我在堆栈上寻求帮助,这三个主题都没有帮助我,所以我创建了一个新主题,有人可以查看我的代码吗?
引起:org.hibernate.AnnotationException: mappedBy 引用了一个未知的目标实体属性
我得到一个 mappedBy 引用一个未知的目标实体属性,我只是没有看到错误
引起:org.hibernate.AnnotationException: mappedBy 引用了一个未知的目标实体属性:
@Data
@DynamicInsert
@DynamicUpdate
@AllArgsConstructor
@NoArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
public class Currency
{
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
Long id;
String name;
String code;
@OneToMany(mappedBy = "currency", fetch = FetchType.EAGER)
List<CurrencyValue> currencyValue;
public Currency(String name, String code)
{
this.name = name;
this.code = code;
}
@Override
public String toString()
{
return "Currency{" +
"id=" + id +
", name='" + name + '\'' +
", code='" + code + '\'' +
'}';
}
}
@Data
@DynamicInsert
@DynamicUpdate
@AllArgsConstructor
@NoArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
public class CurrencyValue
{
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
Long id;
String code;
String name;
double value;
Date date;
@ManyToOne
@JoinColumn(name = "currency")
Currency Currency;
public CurrencyValue(Double value, String code, String name)
{
this.name = name;
this.value = value;
this.code = code;
this.date = new Date();
}
@Override
public String toString()
{
return "CurrencyValue{" +
"id=" + id +
", code='" + code + '\'' +
", value=" + value +
", date=" + date +
'}';
}
}
@Repository
public interface CurrencyValueDAO extends CrudRepository<CurrencyValue, Long>
{
//I tried this 4 options. on each of them i had exception that i add below
// List<CurrencyValue> findAllByCurrencyId(Long id);
// List<CurrencyValue> findAllByCurrency(Currency currency);
// List<CurrencyValue> findCurrencyValuesByCurrency_Id(Long id);
//List<CurrencyValue> findAllByCurrency_Code(Currency currency);
}
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.bartosz.kolej.stock.currency.domain.CurrencyValue.currency in com.bartosz.kolej.stock.currency.domain.Currency.currencyValue
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1778) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1105) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
at com.bartosz.kolej.stock.VirtualStockMarketApplication.main(VirtualStockMarketApplication.java:13) [classes/:na]
Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.bartosz.kolej.stock.currency.domain.CurrencyValue.currency in com.bartosz.kolej.stock.currency.domain.Currency.currencyValue
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:842) ~[hibernate-core-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:793) ~[hibernate-core-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:54) ~[hibernate-core-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1684) ~[hibernate-core-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1652) ~[hibernate-core-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:286) ~[hibernate-core-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:903) ~[hibernate-core-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:934) ~[hibernate-core-5.4.1.Final.jar:5.4.1.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1837) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
... 16 common frames omitted
解决方案
推荐阅读
- vue.js - 如何将容器对齐在中心
- node.js - Discord.js 别名
- javascript - 为什么只有我放在底部的变量在没有 console.log 的情况下被执行?
- javascript - 如何保护 ReactJs 中的路由?
- prolog - 带索引的 Prolog 前缀
- c - 无法在 windows shell 中运行 graphics.h 程序
- google-cloud-platform - 在本地部署 ESPv2
- python - 正则表达式仅适用于 docx 文件的一行
- java - 如何修复 java.io.IOException: write failed: EPIPE (Broken pipe) 当我扎根时?
- qt - 使用 QML 显示视频预览/视频缩略图