Hibernate 4.1-用于任何对象的get()函数

Hibernate 4.1-用于任何对象的get()函数,hibernate,get,Hibernate,Get,使用Hibernate从数据库中获取数据的示例: Cat cat = session.get( Cat.class, catId ); 我在问自己,是否有可能生成一个静态函数,例如在HibernateUtil.java中,它允许从会话中获取任何对象。诸如此类: public static Object getObjectfromDatabase(Class class, long id) { ... return session.get( class, id ); } 当然,

使用Hibernate从数据库中获取数据的示例:

Cat cat = session.get( Cat.class, catId );
我在问自己,是否有可能生成一个静态函数,例如在HibernateUtil.java中,它允许从会话中获取任何对象。诸如此类:

public static Object getObjectfromDatabase(Class class, long id) {
    ...
    return session.get( class, id );
}
当然,类不是有效的表达式,但在这种情况下,如何识别对象

谢谢

当Class无效时,您可以使用Class。有了此更改,通用查询方法应该可以工作。如果您不知道该类,请从实体本身获取该类:

MyEntity entity = (MyEntity) getObjectfromDatabase(MyEntity.class, entity.getId());

在这种情况下,如何识别对象是什么意思?我需要一些东西来获取对象的类。但是,如果我使用一个Object的实例,但我有一个Cat对象,并且我试图找出类Object.getClass,那么我总是得到对象。这似乎与hibernate没有太大关系。这似乎是一个基本的java问题。谢谢您的回答。对我来说似乎很好,但我试过了,但没有成功。我认为问题在于,在您的案例中,实体之前为空,因此getClass不起作用。@MS1哎哟!当然,谢谢你的注意。只要知道调用函数的实体的类,就可以使用class对象。我已相应地编辑了答案