Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.hibernate.AnnotationException:未知的mappedBy位于。。。引用的属性未知_Java_Hibernate_Jpa_Spring Boot - Fatal编程技术网

Java org.hibernate.AnnotationException:未知的mappedBy位于。。。引用的属性未知

Java org.hibernate.AnnotationException:未知的mappedBy位于。。。引用的属性未知,java,hibernate,jpa,spring-boot,Java,Hibernate,Jpa,Spring Boot,我使用SpringBoot2.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/per

我使用SpringBoot2.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>
文件
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.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;
    }
}
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:错误 创建在类路径中定义了名为“entityManagerFactory”的bean 资源 [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: 调用init方法失败;嵌套异常是 org.hibernate.AnnotationException:中的未知mappedBy: com.donhuvy.entity.SysReportList.sysReportLayoutUserApplyByReportId, 引用的属性未知: com.donhuvy.entity.sysreportlayoututeuserapply.sysReportListByReportId


如何修复它?

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

 @OneToOne(mappedBy = "sysReportListByReportId")
    public SysReportLayoutUserApply getSysReportLayoutUserApplyByReportId() {
        return sysReportLayoutUserApplyByReportId;
    }
此属性值应与引用的类对象完全相同,如sysreportlayoututconfigByLayoutId

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;
 }
检查下面的示例

Model.java引用了带有@manytone和“品牌id的品牌类

Brand.java引用了带有mappedBy的模型类,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;

}
公共级品牌{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私有整数id;
@列(名称=“品牌名称”)
私有字符串名称;
@杰索尼奥雷
@OneToMany(fetch=FetchType.LAZY,mappedBy=“brand”)
私有集模型;
}

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

 @OneToOne(mappedBy = "sysReportListByReportId")
    public SysReportLayoutUserApply getSysReportLayoutUserApplyByReportId() {
        return sysReportLayoutUserApplyByReportId;
    }
此属性值应与引用的类对象完全相同,如sysreportlayoututconfigByLayoutId

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;
 }
检查下面的示例

Model.java引用了带有@manytone和“品牌id的品牌类

Brand.java引用了带有mappedBy的模型类,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;

}
公共级品牌{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私有整数id;
@列(名称=“品牌名称”)
私有字符串名称;
@杰索尼奥雷
@OneToMany(fetch=FetchType.LAZY,mappedBy=“brand”)
私有集模型;
}