Java 异常描述:xxx在关系属性【方法xxx】中使用非实体xx作为目标实体
将java ee应用程序部署到weblogic server 12.x时出现此错误:Java 异常描述:xxx在关系属性【方法xxx】中使用非实体xx作为目标实体,java,jakarta-ee,persistence,Java,Jakarta Ee,Persistence,将java ee应用程序部署到weblogic server 12.x时出现此错误: [11:50:07 AM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application habib on AdminServer.: Exception [EclipseLink-7250] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd):
[11:50:07 AM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application habib on AdminServer.: Exception [EclipseLink-7250] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.ValidationException
Exception Description: [class net.tbse.back.inventory.salesRep.entities.SalesRepCommision] uses a non-entity [class net.tbse.back.inventory.salesRep.entities.Commission] as target entity in the relationship attribute [method getCommission]..
[11:50:07 AM] weblogic.application.ModuleException: Exception [EclipseLink-7250] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.ValidationException
Exception Description: [class net.tbse.back.inventory.salesRep.entities.SalesRepCommision] uses a non-entity [class net.tbse.back.inventory.salesRep.entities.Commission] as target entity in the relationship attribute [method getCommission].
我的佣金类别代码是:
package net.tbse.back.inventory.salesRep.entities;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Transient;
import net.tbse.back.accounting.chartOfaccount.tree.entiteis.Account;
import net.tbse.back.inventory.salesYeas.entities.SalesYear;
@Entity
@Table(name = "COMMISSIONS")
public class Commission implements Serializable {
private Long commissionsId;
private Long companyId;
private Double fromAmount;
private Double toAmount;
private Long percentage;
private SalesYear salesYear;
private Account commissionAccount;
private String commissionAccountName;
public Commission() {
super();
}
@TableGenerator(name = "CommissionGen", table = "SEQUENCE",
pkColumnName = "SEQ_NAME", valueColumnName = "SEQ_COUNT",
pkColumnValue = "COMMISSIONS")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "CommissionGen")
@Id
@Column(name = "COMMISSION_ID", nullable = false)
public Long getCommissionsId() {
return commissionsId;
}
public void setCommissionsId(Long commissionsId) {
this.commissionsId = commissionsId;
}
public void setFromAmount(Double fromAmount) {
this.fromAmount = fromAmount;
}
@Column(name = "FROM_AMOUNT")
public Double getFromAmount() {
return fromAmount;
}
public void setToAmount(Double toAmount) {
this.toAmount = toAmount;
}
@Column(name = "TO_AMOUNT")
public Double getToAmount() {
return toAmount;
}
public void setPercentage(Long percentage) {
this.percentage = percentage;
}
@Column(name = "DEF_PERCENTAGE")
public Long getPercentage() {
return percentage;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
@Column(name = "COMPANY_ID")
public Long getCompanyId() {
return companyId;
}
public void setSalesYear(SalesYear salesYear) {
this.salesYear = salesYear;
}
@ManyToOne
@JoinColumn(name = "SALES_YEAR_ID")
public SalesYear getSalesYear() {
return salesYear;
}
public void setCommissionAccount(Account commissionAccount) {
this.commissionAccount = commissionAccount;
}
@ManyToOne
@JoinColumn(name="COMMISSION_ACCOUNT_ID")
public Account getCommissionAccount() {
return commissionAccount;
}
public void setCommissionAccountName(String commissionAccountName) {
this.commissionAccountName = commissionAccountName;
}
@Transient
public String getCommissionAccountName() {
if (isNullOrEmpty(commissionAccountName)) {
if (getCommissionAccount() != null) {
commissionAccountName = getCommissionAccount().getName();
}
}
return commissionAccountName;
}
@Transient
public boolean isNullOrEmpty(String s) {
return (s == null) || s.trim().equals("");
}
}
这是SalesRepCommission类代码:
package net.tbse.back.inventory.salesRep.entities;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Transient;
import net.tbse.back.inventory.salesYeas.entities.SalesPeriod;
import net.tbse.back.inventory.salesYeas.entities.Target;
@Entity
@Table(name = "SALES_REP_COMMISSIONS")
public class SalesRepCommision implements Serializable {
private Long salesRepCommissionsId;
private SalesRep saleRep;
private Commission commission;
private Map<Long,Target> salesPeriodCommissions = new HashMap<Long, Target>();
private Double fromAmount;
private Double toAmount;
public void setSalesRepCommissionsId(Long salesRepCommissionsId) {
this.salesRepCommissionsId = salesRepCommissionsId;
}
@TableGenerator(name = "SalesRepCommisionsGenerator", table = "SEQUENCE",
pkColumnName = "SEQ_NAME", valueColumnName = "SEQ_COUNT",
pkColumnValue = "SALES_REP_COMMISSIONS")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "SalesRepCommisionsGenerator")
@Id
@Column(name = "SALES_REP_COMMISSIONS_ID", nullable = false)
public Long getSalesRepCommissionsId() {
return salesRepCommissionsId;
}
public void setSaleRep(SalesRep saleRep) {
this.saleRep = saleRep;
}
@ManyToOne
@JoinColumn(name = "SALES_REP_ID")
public SalesRep getSaleRep() {
return saleRep;
}
public void setCommission(Commission commission) {
this.commission = commission;
}
@OneToOne
@JoinColumn(name = "COMMISSION_ID")
public Commission getCommission() {
return commission;
}
public void setSalesPeriodCommissions(Map<Long, Target> salesPeriodCommissions) {
this.salesPeriodCommissions = salesPeriodCommissions;
}
@Transient
public Map<Long, Target> getSalesPeriodCommissions() {
return salesPeriodCommissions;
}
public void setToAmount(Double toAmount) {
this.toAmount = toAmount;
}
@Column(name = "TO_AMOUNT")
public Double getToAmount() {
return toAmount;
}
public void setFromAmount(Double fromAmount) {
this.fromAmount = fromAmount;
}
@Column(name = "FROM_AMOUNT")
public Double getFromAmount() {
return fromAmount;
}
}
package net.tbse.back.inventory.salesRep.entities;
导入java.io.Serializable;
导入java.util.HashMap;
导入java.util.Map;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.GeneratedValue;
导入javax.persistence.GenerationType;
导入javax.persistence.Id;
导入javax.persistence.JoinColumn;
导入javax.persistence.ManyToMany;
导入javax.persistence.manytone;
导入javax.persistence.OneToMany;
导入javax.persistence.OneToOne;
导入javax.persistence.Table;
导入javax.persistence.TableGenerator;
导入javax.persistence.Transient;
导入net.tbse.back.inventory.saleyeas.entities.salesriod;
导入net.tbse.back.inventory.saleYeas.entities.Target;
@实体
@表(name=“销售代表佣金”)
公共类SalesRepCommission实现可序列化{
私人长SalesRepCommissionId;
私人销售代表;
私人佣金;
private Map SaleriodCommissions=新HashMap();
私人双倍存款;
私用双toAmount;
public void setSalesRepCommissionId(长SalesRepCommissionId){
this.SalesRepCommissionId=SalesRepCommissionId;
}
@TableGenerator(name=“SalesRepCommissionsGenerator”,table=“SEQUENCE”,
pkColumnName=“SEQ_NAME”,valueColumnName=“SEQ_COUNT”,
pkColumnValue=“销售代表佣金”)
@GeneratedValue(策略=GenerationType.TABLE,generator=“SalesRepCommissionsGenerator”)
@身份证
@列(name=“SALES\u REP\u COMMISSIONS\u ID”,null=false)
公共长GetSalesRepCommissionId(){
返回SalesRepCommissionId;
}
公共作废setSaleRep(SalesRep saleRep){
this.saleRep=saleRep;
}
@许多酮
@JoinColumn(name=“销售代表ID”)
公共销售代表getSaleRep(){
返回saleRep;
}
公共事务委员会(委员会){
这个佣金=佣金;
}
@奥内托内
@JoinColumn(name=“佣金ID”)
公共事务委员会{
退货佣金;
}
公共无效设置salesPeriodCommissions(映射salesPeriodCommissions){
this.saleriodcommissions=saleriodcommissions;
}
@短暂的
公共地图GetSaleseriodCommissions(){
退回销售周期委托书;
}
公共无效设置装载(双装载){
this.toAmount=toAmount;
}
@列(name=“TO_AMOUNT”)
公共双getToAmount(){
返回坐骑;
}
公共作废集合fromAmount(加倍fromAmount){
this.fromAmount=from amount;
}
@列(name=“FROM_AMOUNT”)
公共双getFromAmount(){
从金额中返回;
}
}
这是persistence.xml文件:
此外,我还检查了persistence.xml,该类正确地包含在同一个包中。
编译过程成功完成并生成一个jar文件
有人能帮我吗?这里肯定有一个错误,但我找不到。我想类佣金没有声明为@Entity。显示其代码。显示SalesRepCommission的代码。该类佣金看起来正常。我将从persistence.xml中删除映射,并且只使用注释。