Java Hibernate mappedBy引用未知的目标实体
我有几个从db动态创建的实体类,但是当我用关系注释它们时,我有以下错误Java Hibernate mappedBy引用未知的目标实体,java,hibernate,jpa,annotations,mapping,Java,Hibernate,Jpa,Annotations,Mapping,我有几个从db动态创建的实体类,但是当我用关系注释它们时,我有以下错误 mappedBy reference an unknown target entity property: coma.entity.impl.CompetenceCriteriaEntityImpl.competence in coma.entity.impl.CompetenceEntityImpl.competenceCriteriaEntityImpl] with root cause org.hib
mappedBy reference an unknown target entity property: coma.entity.impl.CompetenceCriteriaEntityImpl.competence in coma.entity.impl.CompetenceEntityImpl.competenceCriteriaEntityImpl] with root cause
org.hibernate.AnnotationException:mappedBy reference未知目标实体属性:coma.entity.impl.CompetencyCriteriaEntityImpl.CompetencyCriteriaEntityImpl.CompetencyCriteriaEntityImpl中的Competency
我的实体类如下
package coma.entity.impl;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import coma.entity.CompetenceEntity;
import coma.exception.InvalidIDException;
@Entity
@Table(name = "competence")
public class CompetenceEntityImpl implements CompetenceEntity, Serializable {
@OneToMany(fetch = FetchType.EAGER, mappedBy = "competence", targetEntity = JobProfileCompetenceEntityImpl.class)
public Set<JobProfileCompetenceEntityImpl> jobProfileCompetenceEntityImpl;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "competence",targetEntity = CompetenceCriteriaEntityImpl.class)
public Set<CompetenceCriteriaEntityImpl> competenceCriteriaEntityImpl;
/**
*
*/
/**
* Identifier of competence
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_competence")
private int idCompetence;
public Set<JobProfileCompetenceEntityImpl> getJobProfileCompetenceEntityImpl() {
return jobProfileCompetenceEntityImpl;
}
public void setJobProfileCompetenceEntityImpl(Set<JobProfileCompetenceEntityImpl> jobProfileCompetenceEntityImpl) {
this.jobProfileCompetenceEntityImpl = jobProfileCompetenceEntityImpl;
}
public Set<CompetenceCriteriaEntityImpl> getCompetenceCriteriaEntityImpl() {
return competenceCriteriaEntityImpl;
}
public void setCompetenceCriteriaEntityImpl(Set<CompetenceCriteriaEntityImpl> competenceCriteriaEntityImpl) {
this.competenceCriteriaEntityImpl = competenceCriteriaEntityImpl;
}
public void setIdCompetence(int idCompetence) {
this.idCompetence = idCompetence;
}
/**
* Name of competence
*/
@Column(name = "name_competence")
private String nameCompetence;
/**
* Identifier category competence
*/
@Column(name = "id_category_competence_enum")
private int idCategoryCompetenceEnum;
/**
* Constructor without parameters
*/
public CompetenceEntityImpl() {
}
/**
* Constructor with parameters
*
* @param idCompetence
* @param nameCompetence
* @param idCategoryCompetenceEnum
*/
public CompetenceEntityImpl(int idCompetence, String nameCompetence, int idCategoryCompetenceEnum) {
this.idCompetence = idCompetence;
this.nameCompetence = nameCompetence;
this.idCategoryCompetenceEnum = idCategoryCompetenceEnum;
}
/**
* Return identifier of current competence
*
* @return idCompetence
*/
@Override
public int getIdCompetence() {
return idCompetence;
}
/**
* Return name of current competence
*
* @return nameCompetence
*/
@Override
public String getNameCompetence() {
return nameCompetence;
}
/**
* Set name of current competence
*
* @param nameCompetence
*/
@Override
public void setNameCompetence(String nameCompetence) {
this.nameCompetence = nameCompetence;
}
/**
* Return identifier category competence
*
* @return idCategoryCompetence
*/
@Override
public int getIdCategoryCompetenceEnum() {
return idCategoryCompetenceEnum;
}
/**
* Set identifier category competence
*
* @param idCategoryCompetenceEnum
*/
@Override
public void setIdCategoryCompetenceEnum(int idCategoryCompetenceEnum) throws InvalidIDException {
if (idCategoryCompetenceEnum < 0) {
throw new InvalidIDException("The idCategoryCompetenceEnum must be greater than 0");
} else {
this.idCategoryCompetenceEnum = idCategoryCompetenceEnum;
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + idCategoryCompetenceEnum;
result = prime * result + idCompetence;
result = prime * result + ((nameCompetence == null) ? 0 : nameCompetence.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
CompetenceEntityImpl other = (CompetenceEntityImpl) obj;
if (idCategoryCompetenceEnum != other.idCategoryCompetenceEnum)
return false;
if (idCompetence != other.idCompetence)
return false;
if (nameCompetence == null) {
if (other.nameCompetence != null)
return false;
} else if (!nameCompetence.equals(other.nameCompetence))
return false;
return true;
}
@Override
public String toString() {
return "CompetenceEntityImpl [idCompetence=" + idCompetence + ", nameCompetence=" + nameCompetence
+ ", idCategoryCompetenceEnum=" + idCategoryCompetenceEnum + "]";
}
}
包coma.entity.impl;
导入java.io.Serializable;
导入java.util.Set;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.FetchType;
导入javax.persistence.GeneratedValue;
导入javax.persistence.GenerationType;
导入javax.persistence.Id;
导入javax.persistence.OneToMany;
导入javax.persistence.Table;
导入coma.entity.competinceentity;
导入coma.exception.InvalidException;
@实体
@表(name=“能力”)
公共类CompetenceEntityImpl实现CompetenceEntity,可序列化{
@OneToMany(fetch=FetchType.EAGER,mappedBy=“胜任力”,targetEntity=JobProfileCapacityEntityImpl.class)
公共设置职务简介能力实体Impl;
@OneToMany(fetch=FetchType.EAGER,mappedBy=“胜任力”,targetEntity=CompetencyCriteriaEntityImpl.class)
公共集能力标准实施;
/**
*
*/
/**
*权限标识符
*/
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id\u能力”)
私人能力;
公共集GetJobProfileCompetencyEntityImpl(){
返回JobProfileCompetencyEntityImpl;
}
public void setJobProfileCompetencyEntityImpl(设置JobProfileCompetencyEntityImpl){
this.jobProfileCompetencyEntityImpl=JobProfileCompetencyEntityImpl;
}
公共集GetCompetencyCriteriaEntityImpl(){
返回能力标准执行;
}
public void setCompetencyCriteriaEntityImpl(设置CompetencyCriteriaEntityImpl){
this.CompetinceCriteriaEntityImpl=CompetinceCriteriaEntityImpl;
}
公共无效设置权限(内部权限){
this.idcompetency=idcompetency;
}
/**
*权限名称
*/
@列(name=“name\u能力”)
个人能力;
/**
*识别类别能力
*/
@列(name=“id\u类别\u能力\u枚举”)
私有int idCategoryCompetenceEnum;
/**
*无参数构造函数
*/
公共能力实体impl(){
}
/**
*带参数的构造函数
*
*@param-idc
*@param name
*@param idCategoryCompetenceEnum
*/
公共能力EntityImpl(int-IDCompetency、String-NameCompetency、int-idCategoryCompetenceEnum){
this.idcompetency=idcompetency;
this.nameproperty=nameproperty;
this.idCategoryCompetenceEnum=idCategoryCompetenceEnum;
}
/**
*返回当前权限的标识符
*
*@return-idc
*/
@凌驾
public int getIDCompetency(){
回归能力;
}
/**
*返回当前权限的名称
*
*@return name
*/
@凌驾
公共字符串getNameCompetency(){
回归能力;
}
/**
*设置当前权限的名称
*
*@param name
*/
@凌驾
public void setNameCapability(字符串NameCapability){
this.nameproperty=nameproperty;
}
/**
*返回标识符类别权限
*
*@return-idCategoryCompetence
*/
@凌驾
public int getIdCategoryCompetenceEnum()函数{
返回idCategoryCompetenceEnum;
}
/**
*设置标识符类别权限
*
*@param idCategoryCompetenceEnum
*/
@凌驾
public void setIdCategoryCompetenceEnum(int-idCategoryCompetenceEnum)引发InvalidException{
如果(idCategoryCompetenceEnum<0){
抛出新的InvalidException(“idCategoryCompetenceEnum必须大于0”);
}否则{
this.idCategoryCompetenceEnum=idCategoryCompetenceEnum;
}
}
@凌驾
公共int hashCode(){
最终整数素数=31;
int结果=1;
结果=素数*结果+idCategoryCompetenceEnum;
结果=基本*结果+能力;
result=prime*result+((NameCompetency==null)?0:NameCompetency.hashCode();
返回结果;
}
@凌驾
公共布尔等于(对象obj){
if(this==obj)
返回true;
if(obj==null)
返回false;
如果(getClass()!=obj.getClass())
返回false;
CompetinceEntityImpl other=(CompetinceEntityImpl)obj;
if(idCategoryCompetenceEnum!=其他.idCategoryCompetenceEnum)
返回false;
if(idcompetency!=其他.idcompetency)
返回false;
如果(NameCompetency==null){
if(other.nameproperties!=null)
返回false;
}else如果(!nameCompervity.equals(other.nameCompervity))
返回false;
返回true;
}
@凌驾
公共字符串toString(){
返回“CompetencyEntityImpl[IDCompetency=“+IDCompetency+”,NameCompetency=“+NameCompetency
+“,idCategoryCompetenceEnum=“+idCategoryCompetenceEnum+””;
}
}
及
包coma.entity.impl;
导入java.io.Serializable;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.FetchType;
导入javax.persistence.GeneratedValue;
导入javax.persistence.GenerationType;
导入javax.persistence.Id;
导入javax.persistence.JoinColumn;
导入javax.persistence.manytone;
导入javax.persistence.Table;
导入coma.entity.competincecriteriaentity;
导入coma.exception.InvalidException;
@实体
@表(name=“能力\标准”)
公共类CompetinceCriteriaEntityImpl实现CompetinceCriteriaEntity,可序列化{
/**
*
*/
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(name=“id\u能力\u标准”)
私人内部能力标准;
@manytone(fetch=FetchType.EAGER,targetEntity=competinceEntityImpl.class)
@JoinColumn(name=“id\u能力”)
能力实体impl能力实体impl;
@manytone(fetch=FetchType.EAGER,targetEntity=CriteriaEntityImpl.class)
@JoinColumn(name=“id\u标准”)
CriteriaEntityImpl CriteriaEntityImpl;
package coma.entity.impl;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import coma.entity.CompetenceCriteriaEntity;
import coma.exception.InvalidIDException;
@Entity
@Table(name = "competence_criteria")
public class CompetenceCriteriaEntityImpl implements CompetenceCriteriaEntity, Serializable {
/**
*
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_competence_criteria")
private int idCompetenceCriteria;
@ManyToOne(fetch = FetchType.EAGER, targetEntity = CompetenceEntityImpl.class)
@JoinColumn(name = "id_competence")
CompetenceEntityImpl competenceEntityImpl;
@ManyToOne(fetch = FetchType.EAGER, targetEntity = CriteriaEntityImpl.class)
@JoinColumn(name = "id_criteria")
CriteriaEntityImpl criteriaEntityImpl;
@Column(name = "id_criteria", insertable = false, updatable = false)
private int idCriteria;
@Column(name = "id_competence", insertable = false, updatable = false)
private int idCompetence;
public CompetenceEntityImpl getCompetenceEntityImpl() {
return competenceEntityImpl;
}
public void setCompetenceEntityImpl(CompetenceEntityImpl competenceEntityImpl) {
this.competenceEntityImpl = competenceEntityImpl;
}
public CriteriaEntityImpl getCriteriaEntityImpl() {
return criteriaEntityImpl;
}
public void setCriteriaEntityImpl(CriteriaEntityImpl criteriaEntityImpl) {
this.criteriaEntityImpl = criteriaEntityImpl;
}
public CompetenceCriteriaEntityImpl() {
}
public CompetenceCriteriaEntityImpl(int idCompetenceCriteria, int idCompetence, int idCriteria) {
this.idCompetenceCriteria = idCompetenceCriteria;
this.idCompetence = idCompetence;
this.idCriteria = idCriteria;
}
@Override
public int getIdCompetenceCriteria() {
return idCompetenceCriteria;
}
@Override
public void setIdCompetenceCriteria(int idCompetenceCriteria) {
this.idCompetenceCriteria = idCompetenceCriteria;
}
@Override
public int getIdCompetence() {
return idCompetence;
}
@Override
public void setIdCompetence(int idCompetence) throws InvalidIDException {
if (idCompetence < 0) {
throw new InvalidIDException("The idCompetence must be greater than 0");
} else {
this.idCompetence = idCompetence;
}
}
@Override
public int getIdCriteria() {
return idCriteria;
}
@Override
public void setIdCriteria(int idCriteria) throws InvalidIDException {
if (idCriteria < 0) {
throw new InvalidIDException("The idCriteria must be greater than 0");
} else {
this.idCriteria = idCriteria;
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + idCompetence;
result = prime * result + idCompetenceCriteria;
result = prime * result + idCriteria;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
CompetenceCriteriaEntityImpl other = (CompetenceCriteriaEntityImpl) obj;
if (idCompetence != other.idCompetence)
return false;
if (idCompetenceCriteria != other.idCompetenceCriteria)
return false;
if (idCriteria != other.idCriteria)
return false;
return true;
}
@Override
public String toString() {
return "CompetenceCriteriaEntityImpl [idCompetenceCriteria=" + idCompetenceCriteria + ", idCompetence="
+ idCompetence + ", idCriteria=" + idCriteria + "]";
}
}