如何在Hibernate删除操作中获取对象的类

时间:2018-02-03 06:01:13

标签: java hibernate

我的功能如下:

public boolean delete(int id) {

    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();
    em.remove(em.find(Student.class, id));
    em.getTransaction().commit();

    return true;
}

现在我希望上面的函数是通用函数。所以我通过以下方式实现了相同的内容:

 public boolean genericDelete(int id, Object ob) {

     EntityManager em = emf.createEntityManager();
     em.getTransaction().begin();
     em.remove(em.find((Class) ob, id));
     em.getTransaction().commit();

     return true;
 }

该函数没有任何缺陷,但IntellijIDEA抱怨对象被转换为Class。这可能是一种不好的做法,所以如何以适当的方式实现它。请帮忙......

1 个答案:

答案 0 :(得分:1)

不需要在那里施放。 Java为此提供了直接的方法。

Class c = ob.getClass();

Oracle文档:Retrieving Class Objects

  

如果对象的实例可用,那么获取其Class的最简单方法是调用Object.getClass()。当然,这仅适用于所有都继承自Object的引用类型。一些例子如下。

Class c = "foo".getClass();