【问题标题】:mappedBy reference an unknown target entity property: ataObject.PayMaster.PayTransactionStatement in dataObject.PayTransactionStatement.payMastermappedBy 引用了一个未知的目标实体属性:dataObject.PayTransactionStatement.payMaster 中的 ataObject.PayMaster.PayTransactionStatement
【发布时间】:2019-10-25 09:11:18
【问题描述】:

我遇到错误

org.hibernate.AnnotationException: mappedBy 引用了一个未知的目标实体属性:my.backend.dataObject.PayTransactionStatement.payMaster 中的 my.backend.dataObject.PayMaster.PayTransactionStatement。

我检查了所有实体,但仍然无法解决问题

@Data
@Entity
@Table(name = "pay_master")
@DynamicUpdate //Dynamic update - you need to set the update time field of the database to be automatically updated. In this way, query the time, save the other fields and save the update time.
public class PayMaster {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="paymaster_id")
    private Long paymasterid;


    @ManyToOne(fetch= FetchType.LAZY)
    @JoinColumn(name="statement_id")
    private PayTransactionStatement payTransactionStatement;

}



@Data
@Entity
@Table(name = "pay_transaction_statement")
@DynamicUpdate
public class PayTransactionStatement {


     @Id
     @GeneratedValue(strategy = GenerationType.AUTO)
     @Column(name="statement_id")
     private Long statementId;

     @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy ="PayTransactionStatement") 
     private List<PayMaster> payMaster;

}

【问题讨论】:

  • 正如@Tijkijiki 正确指出的那样,您需要在映射依据中以小写字母开头。这是由于 Spring Boot 命名约定所致。

标签: java hibernate spring-boot spring-mvc jpa


【解决方案1】:

您在PayTransactionStatement 中的映射应该是

 @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy ="payTransactionStatement") 
 private List<PayMaster> payMaster;

【讨论】:

    猜你喜欢
    • 2011-04-30
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    相关资源
    最近更新 更多