gpt4 book ai didi

java - org.hibernate.AnnotationException : Unknown mappedBy in . ..引用的属性未知

转载 作者:行者123 更新时间:2023-12-01 19:58:09 26 4
gpt4 key购买 nike

我使用Spring Boot 2.0.0.RC1,Hibernate最新版本。文件persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="vy">
<class>com.donhuvy.entity.SysReportLayoutUserApply</class>
<class>com.donhuvy.entity.SysReportList</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
</properties>
</persistence-unit>
</persistence>

文件SysReportLayoutUserApply.java

package com.donhuvy.entity;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import java.util.Objects;

@Entity
@Table(name = "SYS_REPORT_LAYOUT_USER_APPLY", schema = "ACCOUNTING", catalog = "")
public class SysReportLayoutUserApply {

private long reportId;
private Long userId;
private SysReportLayoutConfig sysReportLayoutConfigByLayoutId;

@Id
@Column(name = "REPORT_ID", nullable = false, precision = 0)
public long getReportId() {
return reportId;
}

public void setReportId(long reportId) {
this.reportId = reportId;
}

@Basic
@Column(name = "USER_ID", nullable = true, precision = 0)
public Long getUserId() {
return userId;
}

public void setUserId(Long userId) {
this.userId = userId;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SysReportLayoutUserApply that = (SysReportLayoutUserApply) o;
return reportId == that.reportId &&
Objects.equals(userId, that.userId);
}

@Override
public int hashCode() {

return Objects.hash(reportId, userId);
}

@ManyToOne
@JoinColumn(name = "LAYOUT_ID", referencedColumnName = "LAYOUT_ID")
public SysReportLayoutConfig getSysReportLayoutConfigByLayoutId() {
return sysReportLayoutConfigByLayoutId;
}

public void setSysReportLayoutConfigByLayoutId(SysReportLayoutConfig sysReportLayoutConfigByLayoutId) {
this.sysReportLayoutConfigByLayoutId = sysReportLayoutConfigByLayoutId;
}
}

文件SysReportList.java

package com.donhuvy.entity;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import java.sql.Timestamp;
import java.util.Objects;

@Entity
@Table(name = "SYS_REPORT_LIST", schema = "ACCOUNTING", catalog = "")
public class SysReportList {


private long reportId;
private String reportName;
private String reportName48;
private String reportFile;
private String functionReportName;
private String procedureName;
private String parameterFormName;
private String parameterUserControl;
private String reportViewer;
private String refTypeList;
private Byte sortOrder;
private byte accountingSystem;
private Long branchId;
private String description;
private String formNo;
private String formNo48;
private Timestamp lastViewDate;
private String tableName;
private Boolean isBeta;
private boolean isInvoice;
private boolean isSystem;
private boolean isShow;
private Boolean isNotPrintSummary;
private Byte invTypeId;
private Boolean isPrintLineNumber;
private byte reportType;
private Byte reportStyle;
private String parentId;
private String reportDetailName;
private String linkToReportDetail;
private Byte invMethod;
private boolean isParent;
private Byte refTypeCategory;
private Timestamp createDate;
private String reportTitle;
private String listParameter;
private String reportNameEnglish;
private String reportNameEnglish48;
private Byte showTotalPageNumber;
private String tableNameExport;
private String reportName133;
private String reportNameEnglish133;
private String formNo133;
private SysReportLayoutUserApply sysReportLayoutUserApplyByReportId;
private SysReportGroup sysReportGroupByGroupId;

@Id
@Column(name = "REPORT_ID", nullable = false, precision = 0)
public long getReportId() {
return reportId;
}

public void setReportId(long reportId) {
this.reportId = reportId;
}

@Basic
@Column(name = "REPORT_NAME", nullable = true, length = 256)
public String getReportName() {
return reportName;
}

public void setReportName(String reportName) {
this.reportName = reportName;
}

@Basic
@Column(name = "REPORT_NAME_48", nullable = true, length = 256)
public String getReportName48() {
return reportName48;
}

public void setReportName48(String reportName48) {
this.reportName48 = reportName48;
}

@Basic
@Column(name = "REPORT_FILE", nullable = true, length = 100)
public String getReportFile() {
return reportFile;
}

public void setReportFile(String reportFile) {
this.reportFile = reportFile;
}

@Basic
@Column(name = "FUNCTION_REPORT_NAME", nullable = true, length = 128)
public String getFunctionReportName() {
return functionReportName;
}

public void setFunctionReportName(String functionReportName) {
this.functionReportName = functionReportName;
}

@Basic
@Column(name = "PROCEDURE_NAME", nullable = true, length = 128)
public String getProcedureName() {
return procedureName;
}

public void setProcedureName(String procedureName) {
this.procedureName = procedureName;
}

@Basic
@Column(name = "PARAMETER_FORM_NAME", nullable = true, length = 128)
public String getParameterFormName() {
return parameterFormName;
}

public void setParameterFormName(String parameterFormName) {
this.parameterFormName = parameterFormName;
}

@Basic
@Column(name = "PARAMETER_USER_CONTROL", nullable = true, length = 128)
public String getParameterUserControl() {
return parameterUserControl;
}

public void setParameterUserControl(String parameterUserControl) {
this.parameterUserControl = parameterUserControl;
}

@Basic
@Column(name = "REPORT_VIEWER", nullable = true, length = 128)
public String getReportViewer() {
return reportViewer;
}

public void setReportViewer(String reportViewer) {
this.reportViewer = reportViewer;
}

@Basic
@Column(name = "REF_TYPE_LIST", nullable = false, length = 700)
public String getRefTypeList() {
return refTypeList;
}

public void setRefTypeList(String refTypeList) {
this.refTypeList = refTypeList;
}

@Basic
@Column(name = "SORT_ORDER", nullable = true, precision = 0)
public Byte getSortOrder() {
return sortOrder;
}

public void setSortOrder(Byte sortOrder) {
this.sortOrder = sortOrder;
}

@Basic
@Column(name = "ACCOUNTING_SYSTEM", nullable = false, precision = 0)
public byte getAccountingSystem() {
return accountingSystem;
}

public void setAccountingSystem(byte accountingSystem) {
this.accountingSystem = accountingSystem;
}

@Basic
@Column(name = "BRANCH_ID", nullable = true, precision = 0)
public Long getBranchId() {
return branchId;
}

public void setBranchId(Long branchId) {
this.branchId = branchId;
}

@Basic
@Column(name = "DESCRIPTION", nullable = true, length = 256)
public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

@Basic
@Column(name = "FORM_NO", nullable = true, length = 128)
public String getFormNo() {
return formNo;
}

public void setFormNo(String formNo) {
this.formNo = formNo;
}

@Basic
@Column(name = "FORM_NO_48", nullable = true, length = 128)
public String getFormNo48() {
return formNo48;
}

public void setFormNo48(String formNo48) {
this.formNo48 = formNo48;
}

@Basic
@Column(name = "LAST_VIEW_DATE", nullable = true)
public Timestamp getLastViewDate() {
return lastViewDate;
}

public void setLastViewDate(Timestamp lastViewDate) {
this.lastViewDate = lastViewDate;
}

@Basic
@Column(name = "TABLE_NAME", nullable = true, length = 1024)
public String getTableName() {
return tableName;
}

public void setTableName(String tableName) {
this.tableName = tableName;
}

@Basic
@Column(name = "IS_BETA", nullable = true, precision = 0)
public Boolean getBeta() {
return isBeta;
}

public void setBeta(Boolean beta) {
isBeta = beta;
}

@Basic
@Column(name = "IS_INVOICE", nullable = false, precision = 0)
public boolean isInvoice() {
return isInvoice;
}

public void setInvoice(boolean invoice) {
isInvoice = invoice;
}

@Basic
@Column(name = "IS_SYSTEM", nullable = false, precision = 0)
public boolean isSystem() {
return isSystem;
}

public void setSystem(boolean system) {
isSystem = system;
}

@Basic
@Column(name = "IS_SHOW", nullable = false, precision = 0)
public boolean isShow() {
return isShow;
}

public void setShow(boolean show) {
isShow = show;
}

@Basic
@Column(name = "IS_NOT_PRINT_SUMMARY", nullable = true, precision = 0)
public Boolean getNotPrintSummary() {
return isNotPrintSummary;
}

public void setNotPrintSummary(Boolean notPrintSummary) {
isNotPrintSummary = notPrintSummary;
}

@Basic
@Column(name = "INV_TYPE_ID", nullable = true, precision = 0)
public Byte getInvTypeId() {
return invTypeId;
}

public void setInvTypeId(Byte invTypeId) {
this.invTypeId = invTypeId;
}

@Basic
@Column(name = "IS_PRINT_LINE_NUMBER", nullable = true, precision = 0)
public Boolean getPrintLineNumber() {
return isPrintLineNumber;
}

public void setPrintLineNumber(Boolean printLineNumber) {
isPrintLineNumber = printLineNumber;
}

@Basic
@Column(name = "REPORT_TYPE", nullable = false, precision = 0)
public byte getReportType() {
return reportType;
}

public void setReportType(byte reportType) {
this.reportType = reportType;
}

@Basic
@Column(name = "REPORT_STYLE", nullable = true, precision = 0)
public Byte getReportStyle() {
return reportStyle;
}

public void setReportStyle(Byte reportStyle) {
this.reportStyle = reportStyle;
}

@Basic
@Column(name = "PARENT_ID", nullable = true, length = 100)
public String getParentId() {
return parentId;
}

public void setParentId(String parentId) {
this.parentId = parentId;
}

@Basic
@Column(name = "REPORT_DETAIL_NAME", nullable = true, length = 256)
public String getReportDetailName() {
return reportDetailName;
}

public void setReportDetailName(String reportDetailName) {
this.reportDetailName = reportDetailName;
}

@Basic
@Column(name = "LINK_TO_REPORT_DETAIL", nullable = true, length = 1024)
public String getLinkToReportDetail() {
return linkToReportDetail;
}

public void setLinkToReportDetail(String linkToReportDetail) {
this.linkToReportDetail = linkToReportDetail;
}

@Basic
@Column(name = "INV_METHOD", nullable = true, precision = 0)
public Byte getInvMethod() {
return invMethod;
}

public void setInvMethod(Byte invMethod) {
this.invMethod = invMethod;
}

@Basic
@Column(name = "IS_PARENT", nullable = false, precision = 0)
public boolean isParent() {
return isParent;
}

public void setParent(boolean parent) {
isParent = parent;
}

@Basic
@Column(name = "REF_TYPE_CATEGORY", nullable = true, precision = 0)
public Byte getRefTypeCategory() {
return refTypeCategory;
}

public void setRefTypeCategory(Byte refTypeCategory) {
this.refTypeCategory = refTypeCategory;
}

@Basic
@Column(name = "CREATE_DATE", nullable = true)
public Timestamp getCreateDate() {
return createDate;
}

public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}

@Basic
@Column(name = "REPORT_TITLE", nullable = true, length = 256)
public String getReportTitle() {
return reportTitle;
}

public void setReportTitle(String reportTitle) {
this.reportTitle = reportTitle;
}

@Basic
@Column(name = "LIST_PARAMETER", nullable = true, length = 1024)
public String getListParameter() {
return listParameter;
}

public void setListParameter(String listParameter) {
this.listParameter = listParameter;
}

@Basic
@Column(name = "REPORT_NAME_ENGLISH", nullable = true, length = 256)
public String getReportNameEnglish() {
return reportNameEnglish;
}

public void setReportNameEnglish(String reportNameEnglish) {
this.reportNameEnglish = reportNameEnglish;
}

@Basic
@Column(name = "REPORT_NAME_ENGLISH_48", nullable = true, length = 256)
public String getReportNameEnglish48() {
return reportNameEnglish48;
}

public void setReportNameEnglish48(String reportNameEnglish48) {
this.reportNameEnglish48 = reportNameEnglish48;
}

@Basic
@Column(name = "SHOW_TOTAL_PAGE_NUMBER", nullable = true, precision = 0)
public Byte getShowTotalPageNumber() {
return showTotalPageNumber;
}

public void setShowTotalPageNumber(Byte showTotalPageNumber) {
this.showTotalPageNumber = showTotalPageNumber;
}

@Basic
@Column(name = "TABLE_NAME_EXPORT", nullable = true, length = 20)
public String getTableNameExport() {
return tableNameExport;
}

public void setTableNameExport(String tableNameExport) {
this.tableNameExport = tableNameExport;
}

@Basic
@Column(name = "REPORT_NAME_133", nullable = true, length = 256)
public String getReportName133() {
return reportName133;
}

public void setReportName133(String reportName133) {
this.reportName133 = reportName133;
}

@Basic
@Column(name = "REPORT_NAME_ENGLISH_133", nullable = true, length = 256)
public String getReportNameEnglish133() {
return reportNameEnglish133;
}

public void setReportNameEnglish133(String reportNameEnglish133) {
this.reportNameEnglish133 = reportNameEnglish133;
}

@Basic
@Column(name = "FORM_NO_133", nullable = true, length = 128)
public String getFormNo133() {
return formNo133;
}

public void setFormNo133(String formNo133) {
this.formNo133 = formNo133;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SysReportList that = (SysReportList) o;
return reportId == that.reportId &&
accountingSystem == that.accountingSystem &&
isInvoice == that.isInvoice &&
isSystem == that.isSystem &&
isShow == that.isShow &&
reportType == that.reportType &&
isParent == that.isParent &&
Objects.equals(reportName, that.reportName) &&
Objects.equals(reportName48, that.reportName48) &&
Objects.equals(reportFile, that.reportFile) &&
Objects.equals(functionReportName, that.functionReportName) &&
Objects.equals(procedureName, that.procedureName) &&
Objects.equals(parameterFormName, that.parameterFormName) &&
Objects.equals(parameterUserControl, that.parameterUserControl) &&
Objects.equals(reportViewer, that.reportViewer) &&
Objects.equals(refTypeList, that.refTypeList) &&
Objects.equals(sortOrder, that.sortOrder) &&
Objects.equals(branchId, that.branchId) &&
Objects.equals(description, that.description) &&
Objects.equals(formNo, that.formNo) &&
Objects.equals(formNo48, that.formNo48) &&
Objects.equals(lastViewDate, that.lastViewDate) &&
Objects.equals(tableName, that.tableName) &&
Objects.equals(isBeta, that.isBeta) &&
Objects.equals(isNotPrintSummary, that.isNotPrintSummary) &&
Objects.equals(invTypeId, that.invTypeId) &&
Objects.equals(isPrintLineNumber, that.isPrintLineNumber) &&
Objects.equals(reportStyle, that.reportStyle) &&
Objects.equals(parentId, that.parentId) &&
Objects.equals(reportDetailName, that.reportDetailName) &&
Objects.equals(linkToReportDetail, that.linkToReportDetail) &&
Objects.equals(invMethod, that.invMethod) &&
Objects.equals(refTypeCategory, that.refTypeCategory) &&
Objects.equals(createDate, that.createDate) &&
Objects.equals(reportTitle, that.reportTitle) &&
Objects.equals(listParameter, that.listParameter) &&
Objects.equals(reportNameEnglish, that.reportNameEnglish) &&
Objects.equals(reportNameEnglish48, that.reportNameEnglish48) &&
Objects.equals(showTotalPageNumber, that.showTotalPageNumber) &&
Objects.equals(tableNameExport, that.tableNameExport) &&
Objects.equals(reportName133, that.reportName133) &&
Objects.equals(reportNameEnglish133, that.reportNameEnglish133) &&
Objects.equals(formNo133, that.formNo133);
}

@Override
public int hashCode() {

return Objects.hash(reportId, reportName, reportName48, reportFile, functionReportName, procedureName, parameterFormName, parameterUserControl, reportViewer, refTypeList, sortOrder, accountingSystem, branchId, description, formNo, formNo48, lastViewDate, tableName, isBeta, isInvoice, isSystem, isShow, isNotPrintSummary, invTypeId, isPrintLineNumber, reportType, reportStyle, parentId, reportDetailName, linkToReportDetail, invMethod, isParent, refTypeCategory, createDate, reportTitle, listParameter, reportNameEnglish, reportNameEnglish48, showTotalPageNumber, tableNameExport, reportName133, reportNameEnglish133, formNo133);
}

@OneToOne(mappedBy = "sysReportListByReportId")
public SysReportLayoutUserApply getSysReportLayoutUserApplyByReportId() {
return sysReportLayoutUserApplyByReportId;
}

public void setSysReportLayoutUserApplyByReportId(SysReportLayoutUserApply sysReportLayoutUserApplyByReportId) {
this.sysReportLayoutUserApplyByReportId = sysReportLayoutUserApplyByReportId;
}

@ManyToOne
@JoinColumn(name = "GROUP_ID", referencedColumnName = "GROUP_ID")
public SysReportGroup getSysReportGroupByGroupId() {
return sysReportGroupByGroupId;
}

public void setSysReportGroupByGroupId(SysReportGroup sysReportGroupByGroupId) {
this.sysReportGroupByGroupId = sysReportGroupByGroupId;
}
}

错误:

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: Unknown mappedBy in: com.donhuvy.entity.SysReportList.sysReportLayoutUserApplyByReportId, referenced property unknown: com.donhuvy.entity.SysReportLayoutUserApply.sysReportListByReportId

如何解决?

最佳答案

mappedBy 属性在此方法中不完全匹配

 @OneToOne(mappedBy = "sysReportListByReportId")
public SysReportLayoutUserApply getSysReportLayoutUserApplyByReportId() {
return sysReportLayoutUserApplyByReportId;
}

此属性值应该与引用的类对象完全相同,例如sysReportLayoutConfigByLayoutId

检查下面的示例

Model.java 使用 @ManyToOne 和“brand_id”引用 Brand 类

public class Model {

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

@Column(name = "model_name")
private String name;

@JsonIgnore
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "brand_id")
private Brand brand;
}

Brand.java使用mappedBy引用模型类,其brand值与模型类中的变量名称完全相同

public class Brand {

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

@Column(name = "brand_name")
private String name;

@JsonIgnore
@OneToMany(fetch = FetchType.LAZY, mappedBy = "brand")
private Set<Model> models;

}

关于java - org.hibernate.AnnotationException : Unknown mappedBy in . ..引用的属性未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48780960/

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