之前可能已经提出过这个问题,但是我已经看过了,我看不到任何简洁的答案,所以我会再问一次。
我有一个带有字符串的Web服务,以及一组字段名称和数据。我正在创建一个Hibernate Criteria,我需要一个实体实现。
所以,我想说:
Criteria criteria = session.createCriteria(MyHibernateEntity.class);
" MyHibernateEntity"是指一个hibernate-annoted类,它映射到我的数据库中的某个表。
我想做的是:MyHibernateEntity.class
来自:" MyHibernateEntity"这是一个字符串。
我看到的一个解决方案,我还没有测试过:
Object someHibernateEntityClass = session.get("MyHibernateEntity", null);
如果这是正确的方法,那很好,如果不是这样,那么你能推荐最好的方法吗?谢谢!
答案 0 :(得分:0)
在Java中,您可以通过名称获取类:
try {
Class<?> entityClass = Class.forName("my.entities.MyHibernateEntity");
Criteria criteria = session.createCriteria(entityClass);
} catch (ClassNotFoundException e) {
///
}
顺便说一句,您可以不是按类but by entity name as well创建Criteria
:
Criteria criteria = session.createCriteria("MyHibernateEntity");
答案 1 :(得分:0)
是的,以下代码有效。
Object someHibernateEntityClass = session.get("MyHibernateEntity", id_value);
但是你需要把它投到正确的课堂上才能用它做一些有用的事情。