今天分享一个在JPA进行CRUD的时候遇见的一个问题:父类如何获取子类传递的泛型!

我把Delete分享出来大家看看!

--------------------------------------------------------------------------------------------  
public class IBasicDaoImpl<T> implements BasicDao<T> {
  //实体类class  private Class<T> entityClass = null;  //ID字段的class  {  //getSuperclass   返回直接继承的父类(由于编译擦除,没有显示泛型参数)  // getGenericSuperclass  返回直接继承的父类(包含泛型参数)          Type type = getClass().getGenericSuperclass();  //解决多层继承拿泛型类型   //BaseServiceImpl<User> <- UserService <- PassportService      while(!(type instanceof ParameterizedType)){          type = ((Class<?>)type).getGenericSuperclass();          //为了避免写错代码出现死循环,加上这个保险。          if(type == null || "java.lang.Object".equals(type.getClass())){              break;          }      }      if(type instanceof ParameterizedType){          ParameterizedType parameterizedType = (ParameterizedType)type;          Type[] genericTypies = parameterizedType.getActualTypeArguments();          entityClass = (Class<T>)genericTypies[0];      }  }--------------------------------------------------------------------------------------------------
  public void delete(Long id) {      EntityManager entityManager = JpaUtils.getEntityManager();      try {          entityManager.getTransaction().begin();      //通过id去查询一个对象[持久状态的对象]          T t = entityManager.find(entityClass, id);      //删除数据[remove表示将一个持久状态的对象从表中移除]          entityManager.remove(t);          entityManager.getTransaction().commit();      } catch (Exception e) {          e.printStackTrace();      //事务回滚          entityManager.getTransaction().rollback();      } finally {      //关闭资源          JpaUtils.close(entityManager);      JpaUtils.close();      }   }}代码就是上面的代码!过这样我们就可以解决父类如何获取子类传递的泛型的问题!
 

原文地址:https://www.cnblogs.com/DarryZz04/p/11016605.html

时间: 2024-11-01 01:33:54

今天分享一个在JPA进行CRUD的时候遇见的一个问题:父类如何获取子类传递的泛型!的相关文章

【链接分享】第一期:科学太疯狂——在另一个星球上打印人类

科学好疯狂 Here's the Plan to Eavesdrop on Aliens' Interplanetary Communications :计划偷听到外星人的星际通信 Our Best Bet for Colonizing Space May Be Printing Humans on Other Planets : 科学家称太空殖民的最好方法是在另一个星球上打印人类,你愿意被打印吗? 趣味设计 倾倒的咖啡灯 Guitar learning gloves让人瞬时变天才 :人人都是钢

怎么作好一个领导者?什么是团队?怎么当好一个组员?

我是一个没有读多少书,没有多么高的文凭的人.中考我以六百多分的高分考入县城,全家人都很高兴,但是在县城读高中的我并没有努力,所以高考只考了三百多分.但是我还是能自信的说,我唯一失败的就是在成绩上面没有取得高分,但是对于现在的我来说,成绩并不代表什么,虽然高中没有提高成绩,但是在处事行为上面还是学到了很多.所以我并没有像同学们那样进入大学校园生活,而是选择了一家培训学校,进行专业技能培训.我很感谢这个培训班,感谢里面的所有老师同学朋友,让我的努力得到了丰厚的回报. 其实我们都在说,做人是不能图回报

转:一个基于互联网医疗的创业公司,三年是一个收获

东软集团股份有限公司董事长兼首席执行官刘积仁演讲全文: 今天我们在这里庆祝熙康公司三周年的生日.作为一个基于互联网医疗的创业公司,三年是一个收获,因为这种类型的公司,能活过三年也不太容易.可能大家对我 们今天还活着没有什么特别的感觉,因为我们是富二代创业,咱家境比较好,如果我们来自于一个贫苦的家庭,靠借钱来创业,可能就挺不过这一天,如果你真挺过 来了,你一定是一个真正的创业者. 在庆祝我们还活着的时刻,我想跟大家分享一下什么叫创业,什么叫做创业者的精神. 我认为理解这一点,对我们一个三岁的企业十

访问一个绝对地址把一个整型数强制转换 (typecast)为一个指针是合法的

在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66.编译器是一个纯粹的ANSI编译器.写代码去完成这一任务. 解析:这一问题测试你是否知道为了访问一个绝对地址把一个整型数强制转换(typecast)为一个指针是合法的.这一问题的实现方式随着个人风格不同而不同.典型的代码如下: 一个较晦涩的方法是: 建议你在面试时使用第一种方案.答案:

删除一个目录下的所有文件,但保留一个指定文件

此题问题虽小,但是初学者还是很难给出合理的答案的!本文来自老男孩21期网络班学员 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件

学习小记(2015/10/19)——工作中遇见的一个关于jQuery选择器的小要点。

jQuery是现在非常流行的js库,其中封装了很多很酷炫的功能,其中强大的选择器功能是必不可少的.由于jQuery的选择器,我们能够快速的从许多元素中选中我们需要的目标,从而进行后续的工作.今天,我就讲一下jQuery的我使用jQuery遇见的一个小要点. 当时,我使用jQuery是准备将所有页面上的多选框选中,再对其中某一个进行操作.我是这样做的:HTML: <!DOCTYPE html> <html> <head lang="en"> <m

定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据?

原文:http://www.iteye.com/problems/77856 定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据? 表结构肯定是不能破坏,但是临时表如果是自己的数据库还行,问题是这个Oracle数据库是客户的数据库呢,你不能在他的数据库做任何多余的操作吧?还有别的更好的方法吗? 这个真的是比较困难. 首先,你要从客户机oracle取数据,因为这1分钟间隔之内不知道用户机新增加了哪些数据(大部分情况下是用户使用别的系统插入数据,而你又没有这个系统的程序接口

定义一个由整数组成的数组,然后输入一个整数X,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j

//定义一个由整数组成的数组,然后输入一个整数x,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j: //若X在此数组中,则返回数组中这个数的位置. 源代码: #include<iostream> using namespace std; void main() { int array[]={1,2,3,4,5,6,7,89,45,32,56,78,12,43,90,19};//16个数字 int x; int max=array[0]; int min=array[0]

下拉框&mdash;&mdash;把一个select框中选中内容移到另一个select框中遇到的问题

在使用jQuery实现把一个select框中选中内容移到另一个select框中功能时遇到了一个问题,就是点击按钮时内容可以到另一个select框中,但是到了另一个select框中的内容却很快闪退回原来的select框中,代码如下:                  <select class="select1" name="select1" multiple="multiple">                     <op