public class Test {
public static void main(String[] args) throws Exception
{
Generic<Customer> x = new Generic(Customer.class);
Customer cust = x.get("1");
System.out.println(cust.getFullname());
}
class Generic<T> {
private Class<T> clazz;
public Generic(Class<T> clazz) {
this.clazz = clazz;
}
public Session openSession() {
Configuration config = new AnnotationConfiguration().configure();
SessionFactory sf = config.buildSessionFactory();
Session session = sf.openSession();
return session;
}
public T get(String id) {
Session session = openSession();
T t = (T) session.get(clazz.getClass(), id);
return t;
}
}
当我运行这个程序时,它除了我的Customer.class(Customer只是一个实体类)并抛出异常
org.hibernate.MappingException:未知实体:java.lang.Class.Please解释原因
答案 0 :(得分:0)
您需要传递Class<T>
类型的其他Class对象。
编辑:我可能错了,没有使用Hibernate太长时间。某些版本的get()需要一个Class对象。
无论哪种方式,都要查找Session.get here。
的定义