我正在使用 Hibernate 构建查询数据库的通用方法,以下方法通过主键查询实体的信息。
@PersistenceContext(unitName = "UnitPers")
private EntityManager entity;
public Object findByPk(Class clazz, Object pk) throws Exception {
Object obj = null;
try {
obj = entity().find(clazz, pk);
} catch (Exception e) {
throw e;
}
return obj;
}
此方法工作正常,但我不想在调用时进行强制转换(myTypeEntity 的对象)。
private myTypeEntity entity;
entity = (myTypeEntity) findByPk(myTypeEntity.class, new Bigdecimal("1"));
//GET and SET Methods
我想避免在调用此方法时进行强制转换,记住这是泛型的目的之一,但我还没有成功做到这一点,有什么想法吗?或者我想做的事情是不可能的。
最佳答案
您可以使用泛型而不是使用对象:
public <T> T findByPk(Class<T> clazz, Object pk) throws Exception {
T obj = null;
try {
obj = entity().find(clazz, pk);
} catch (Exception e) {
throw e;
}
return obj;
}
然后它应该可以在不进行转换的情况下工作
private myTypeEntity entity;
entity = findByPk(myTypeEntity.class, new Bigdecimal("1"));
关于java - 方法泛型返回java类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50847419/