简体   繁体   English

原因:org.hibernate.AnnotationException:mappedBy引用了未知的目标实体属性:jpa + springboot

[英]Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: jpa+springboot

model classes 模型类

@Entity
@Table(name="RequisitionRequest")
public class Requisition {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    private String requestedPerson;
    private String contactDetails;
    private String appliedDate;
    private String branch;
    private String department;

    private String status;
     @OneToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER,mappedBy = "RequisitionRequest")
    private List<Nationality> nationality;
//getters and setters
}

class Nationality 国籍

@Entity
@Table(name="nationality")
public class Nationality {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String nationality;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "nationality_id", nullable = false)
    private Requisition requisition;
//getters and setters
}

repository classes 储存库类别

@Repository
public interface NationalityRepository extends JpaRepository<Nationality,Long>{

}

@Repository
public interface RequisitionRepository extends JpaRepository<Requisition,Long> {

}

service class 服务等级

@Service
public class RequisitionServiceImpl implements RequisitionService {
    @Autowired
    RequisitionRepository requisitionRepository;

    @Override
    public void save(Requisition requisition) {
        requisitionRepository.save(requisition);

    }
}

controller class 控制器类

@RestController
public class RequisitionController {
    @Autowired
    RequisitionService requisitionService;

    @Autowired
    RequisitionRepository requisitionRepository;
@PostMapping("/requisition/")
    @CacheEvict(value = "requisitions", allEntries=true)
    public ResponseEntity<Requisition> addRequisition(@RequestBody Requisition requisition) {
        System.out.print(requisition);

        Requisition requisitionR = new Requisition();
        Requisition response = new Requisition();




        requisitionR.setBranch(requisition.getBranch());
        requisitionR.setDepartment(requisition.getDepartment());
        requisitionR.setExpectedDateofJoin(requisition.getExpectedDateofJoin());

        //requisitionR.setNationality(requisition.getNationality());


        requisitionRepository.save(requisitionR);


        return new ResponseEntity<Requisition>(response, HttpStatus.OK);
    }

i am learning spring boot,just writing sample program to learn spring boot+jpa+one-to-many relation.when execute this above code getting error like 我正在学习Spring Boot,只需编写示例程序即可学习Spring Boot + JPA +一对多关系。

Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: officekitRecruitment.model.Nationality.RequisitionRequest in officekitRecruitment.model.Requisition.nationality 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 引起原因:org.hibernate.AnnotationException:mappedBy引用了未知的目标实体属性:位于org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinderjava: )〜[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 .org.jar.5.0:12.Final.jar:5.0.12.Final.org.org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:54)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.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] .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]

I tried the solutions already mentionned in this site but it doesn't work for me. 我尝试了此站点中已经提到的解决方案,但对我不起作用。 Can anybody helps me to resolve this issue 谁能帮我解决这个问题

You should refer to the name of the Field in mapped entity on your MappedBy parameter. 您应该在MappedBy参数上引用映射实体中字段的名称。

Like that 像那样

mappedBy = "requisition"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 调用 init 方法失败;嵌套异常是 org.hibernate.AnnotationException:mappedBy 引用未知的目标实体属性: - Invocation of init method failed;nested exception is org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: 调用init方法失败; 嵌套的异常是org.hibernate.AnnotationException:mappedBy引用了未知的目标实体属性: - Invocation of init method failed; nested exception is org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: org.hibernate.AnnotationException:未知,由...引用的属性未知 - org.hibernate.AnnotationException: Unknown mappedBy in … referenced property unknown SpringBoot JPA MappedBy通过引用未知目标实体属性 - SpringBoot JPA MappedBy reference an unknown target entity property Sping Boot AnnotationException - mappingBy 引用了一个未知的目标实体属性 - Sping Boot AnnotationException - mappedBy reference an unknown target entity property AnnotationException:MappedBy通过引用未知的目标实体属性-映射继承的类 - AnnotationException: MappedBy reference an unknown target entity property - mapping an inherited class JPA mappedBy引用未知目标实体属性 - JPA mappedBy reference an unknown target entity property 原因:java.lang.IllegalArgumentException:不是托管类型:&原因:org.hibernate.AnnotationException:未为实体指定标识符: - Caused by: java.lang.IllegalArgumentException: Not a managed type: & Caused by: org.hibernate.AnnotationException: No identifier specified for entity: 错误:mappedBy通过引用未知目标实体属性: - Err: mappedBy reference an unknown target entity property: 通过引用带有注释的未知目标实体属性 - mappedBy reference an unknown target entity property with annotation
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM