首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

Initial SessionFactory creation failedorg.hibernate.AnnotationException:解决方案

2013-04-20 
Initial SessionFactory creation failedorg.hibernate.AnnotationException:刚写的报错:Initial SessionF

Initial SessionFactory creation failedorg.hibernate.AnnotationException:
刚写的报错:
Initial SessionFactory creation failedorg.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.super120.Model.Operation.oper in com.super120.Model.Operation.operations
用的hibernate3.6.10
hibernateUtils类

public class HibernateUtils {

private static final SessionFactory sessionFactory;

static {
try {
Configuration cfg = new Configuration();
sessionFactory = cfg.configure().buildSessionFactory();
} catch (Throwable e) {
System.err.println("Initial SessionFactory creation failed" + e);
throw new ExceptionInInitializerError(e);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}

public static Session getSession() {
return sessionFactory.openSession();
}

public static void closeSession(Session session) throws HibernateException {
if (session != null) {
if (session.isOpen()) {
session.close();
}
}
}

public static void rollback(Transaction tran) {
try {
if (tran != null) {
tran.rollback();
}
} catch (HibernateException he) {
System.out.println("Rollback faild." + he);
}
}
}



operation类:

package com.super120.Model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
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;

@Entity
@Table(name="tb_Operation")
public class Operation {
private int ID;

private String OperationName;

private String Description;

private String Reserved;

private Set<Operation> operations = new HashSet<Operation>();



@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public int getID() {
return ID;
}

public void setID(int iD) {
ID = iD;
}



@OneToMany(cascade={CascadeType.REMOVE},fetch=FetchType.EAGER,mappedBy="oper")
public Set<Operation> getOperations() {
return operations;
}

public void setOperations(Set<Operation> operations) {
this.operations = operations;
}


public String getOperationName() {
return OperationName;
}

public void setOperationName(String operationName) {
OperationName = operationName;
}

public String getDescription() {
return Description;
}

public void setDescription(String description) {
Description = description;
}

public String getReserved() {
return Reserved;


}

public void setReserved(String reserved) {
Reserved = reserved;
}


}




privilege类,和operation关联。

package com.super120.Model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
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;


@Entity
@Table(name="tb_Privilege")
public class Privilege {
private int ID;


private SystemResource systemResource;


private Operation oper;
private String Description;

private String Reserved;
private Set<Authorize> authorizes = new HashSet<Authorize>();


@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public int getID() {
return ID;
}

public void setID(int iD) {
ID = iD;
}



@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "ResourceID" ,nullable = true)
public SystemResource getSystemResource() {
return systemResource;
}

public void setSystemResource(SystemResource systemResource) {
this.systemResource = systemResource;
}



@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "OperationID" ,nullable = true)
public Operation getOper() {
return oper;
}

public void setOper(Operation oper) {
this.oper = oper;
}





@OneToMany(mappedBy="privilege",cascade = CascadeType.ALL)
public Set<Authorize> getAuthorizes() {
return authorizes;
}



public void setAuthorizes(Set<Authorize> authorizes) {
this.authorizes = authorizes;
}



public String getDescription() {
return Description;
}

public void setDescription(String description) {
Description = description;
}

public String getReserved() {
return Reserved;
}

public void setReserved(String reserved) {
Reserved = reserved;
}


}


[解决办法]
你本身这个实体类就没有oper属性,拿什么和别的类有映射关系?反射就是根据get set后的字段找的

热点排行