Java 在一个实体中使用多个关系(一对一和一对多)时出现异常

Java 在一个实体中使用多个关系(一对一和一对多)时出现异常,java,spring-boot,hibernate,spring-data-jpa,one-to-one,Java,Spring Boot,Hibernate,Spring Data Jpa,One To One,这是PostgreSQL数据库:列产品(名称)由列缩略图(产品名称)和产品图像(产品名称)引用。列产品图片(图片url)由缩略图(缩略图)引用 下面的3个代码是3个实体 @实体 @表(name=“产品”) @诺尔格构装师 @AllArgsConstructor @资料 公共类产品实现可序列化{ @身份证 @GeneratedValue(策略=GenerationType.IDENTITY) @列(name=“id”) 私有整数id; @NotBlank(message=“请填写姓名”) @长度

这是PostgreSQL数据库:列产品(名称)由列缩略图(产品名称)和产品图像(产品名称)引用。列产品图片(图片url)由缩略图(缩略图)引用

下面的3个代码是3个实体

@实体
@表(name=“产品”)
@诺尔格构装师
@AllArgsConstructor
@资料
公共类产品实现可序列化{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”)
私有整数id;
@NotBlank(message=“请填写姓名”)
@长度(最大值为255,消息=“太长”)
@列(name=“name”)
私有字符串名称;
@NotBlank(message=“请选择类别”)
@列(name=“category\u name”)
私有字符串类别名称;
@列(name=“description”)
私有字符串描述;
@OneToMany(mappedBy=“产品”)
私有列表图像;
@OneTONE(mappedBy=“产品名称”)
私人缩略图;
}
@实体
@表(name=“product\u image”)
@诺尔格构装师
@AllArgsConstructor
@资料
公共类产品形象{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”)
私有整数id;
@不空白
@列(name=“image\u url”)
私有字符串url;
@许多酮
@JoinColumn(name=“product_name”,referencedColumnName=“name”)
私人产品;
@OneTONE(mappedBy=“缩略图”)
私人缩略图;
}
@实体
@表(name=“缩略图”)
@诺尔格构装师
@AllArgsConstructor
@资料
公共类缩略图{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”)
私有整数id;
@奥内托内
@JoinColumn(name=“缩略图”,referencedColumnName=“image\uURL”)
私有产品图像缩略图;
@奥内托内
@JoinColumn(name=“product_name”,referencedColumnName=“name”)
私人产品名称;
}
这是控制器

@GetMapping(“/product/{product}”)
公共字符串产品(模型模型,@PathVariable字符串产品){
产品结果=productRepository.findByName(“iphone X”);
List productImageList=imageRepository.findAllByProduct(结果);
结果:setProductImages(productImageList);
model.addAttribute(“产品”,结果);
退回“产品”;
}
这是模板


产品详情
*{
空白:预包装;
}
产品形象

调用findByName方法时,它会生成此异常

2020-06-12 07:19:36.991错误39998---[nio-8080-exec-1]o.a.c.c.c.[/].[dispatcherServlet]:路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为org.springframework.orm.jpa.JpaSystemException:访问字段时出错][private java.lang.String com.project.shopping_site.Entities.Product.name]通过永久属性反射[com.project.shopping_site.Entities.Product#name]:20;嵌套异常为org.hibernate.property.access.spi.PropertyAccessException:访问字段[private java.lang.String.com.project.shopping_site.Entities.Product.name]时出错通过对持久性属性[com.project.shopping_site.Entities.Product#name]:20]进行反思,找到根本原因
java.lang.IllegalArgumentException:无法将java.lang.String字段com.project.shopping\u site.Entities.Product.name设置为java.lang.Integer
在sun.reflect.UnsafeFieldAccessorImpl.throwsetilegalargumentexception(UnsafeFieldAccessorImpl.java:167)~[na:1.8.0\u 231]
在sun.reflect.UnsafeFieldAccessorImpl.throwsetilegalargumentexception(UnsafeFieldAccessorImpl.java:171)~[na:1.8.0\u 231]
在sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:58)~[na:1.8.0\u 231]
在sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)~[na:1.8.0\u 231]
在java.lang.reflect.Field.get(Field.java:393)~[na:1.8.0_231]
在org.hibernate.property.access.spi.GetterFieldImpl.get(GetterFieldImpl.java:71)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.tuple.component.AbstractComponentTuplizer.getPropertyValue(AbstractComponentTuplizer.java:59)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.type.ComponentType.getPropertyValue(ComponentType.java:419)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.type.ComponentType.getHashCode(ComponentType.java:246)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.engine.spi.EntityUniqueKey.generateHashCode(EntityUniqueKey.java:67)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.engine.spi.EntityUniqueKey.(EntityUniqueKey.java:48)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:738)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.type.EntityType.resolve(EntityType.java:467)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:231)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:162)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.loader.loader.initializeEntitiesAndCollections(loader.java:1179)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.loader.loader.processResultSet(loader.java:1028)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.loader.loader.doQuery(loader.java:964)~[hibernate-core-5.4.15.Final.jar:5.4.15.Final]
在org.hibernate.loader.loader.doQueryAnd
@OneToOne(mappedBy = "product_name")
    private Thumbnail thumbnail;
@OneToOne(mappedBy = "thumbnail")
    private Thumbnail thumbnail;