错误: 类型Session中的方法get(Class,Serializable)不适用于参数(Class,int)?当我想从表中获取数据我得到这个错误。谁能帮我?
public class Test {
public static void main(String[] args) {
Configuration config = new Configuration().configure();
SessionFactory factory = config.buildSessionFactory();
Session session = factory.openSession();
Transaction trx = session.beginTransaction();
Sample sample = new Sample();
sample = (Sample)session.get(Sample.class, 1);
trx.commit();
System.out.println("success");
session.close();
}
}
public class Sample {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
正如错误中所述,第二个参数不能只是一个Integer,但它必须事先定义为Serializable。我最好的建议是为这个普通查询编写一个通用的实现,就像[这个类](https://github.com/luciomartinez/hibernate/blob/master/Registro/src/registro/dao/GenericDaoImpl.java)。如果你愿意尝试内联的解决方案,可以使用[SerializationUtils]中的'serialize'方法(https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache /commons/lang/SerializationUtils.html)类可以工作,但不能确定。 – Lucio
如果这对你有用,我会在稍后回答一个答案时写下一些清洁剂:-) – Lucio