gpt4 book ai didi

java - Hibernate jpa "mappedBy"异常

转载 作者:行者123 更新时间:2023-11-30 06:13:32 25 4
gpt4 key购买 nike

当我想使用 persist 方法将新的 UserDetails 对象添加到我的数据库时,我的 JPA 数据库出现问题。然后我得到异常:“关键 hibernate 的重复条目 2”此异常与产品类相关。我找到了基于将mappedBy参数添加到@OneToMany(上面的产品类列表)的解决方案,但后来我得到了“mappedBy引用未知的目标实体属性”有什么解决办法吗?

@Entity
public class UserDetails {

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

....
@OneToOne(cascade = CascadeType.ALL)
private UserOffer userOffer;
.....
//getters and setters

下一个

@Entity
public class UserOffer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

.....
@OneToOne(cascade= CascadeType.ALL)
private DetailsOffer detailsOffer;
.....

下一个

@Entity
public class DetailsOffer {

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

@OneToMany(cascade = CascadeType.ALL, mappedBy="detailsOffer")
private List<Product> products;

nexr @实体 公共(public)类产品{

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

private PetType petType;
private int petNumber;
@ElementCollection
private List<String> goodies;
private String petDescribtion;
private BigDecimal price;

错误:

Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.knr.domain_ver2.Product.detailsOffer in com.knr.domain_ver2.DetailsOffer.products
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:769) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:719) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:54) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1655) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1623) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[spring-orm-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:360) ~[spring-orm-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:382) ~[spring-orm-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:371) ~[spring-orm-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:336) ~[spring-orm-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
... 16 common frames omitted

最佳答案

在类 Product 中,您需要声明字段 detailsOffer 并将其映射为 @ManyToOne@JoinColumn包含引用 DetailsOffer 的列名称。

例如:

@ManyToOne
@JoinColumn(name = 'id_details_offer')
private DetailsOffer detailsOffer;

希望对你有帮助。

关于java - Hibernate jpa "mappedBy"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49756738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com