java jpa hibernate_SPRING+JPA+Hibernate配置方法

1 packagecom.genius.han.dao.impl;2

3 importjava.io.Serializable;4 importjava.lang.reflect.ParameterizedType;5 importjava.lang.reflect.Type;6

7 importjavax.persistence.EntityManager;8 importjavax.persistence.LockModeType;9 importjavax.persistence.PersistenceContext;10 importjavax.persistence.Query;11 importjavax.transaction.Transactional;12

13 importorg.springframework.util.Assert;14 importorg.springframework.util.StringUtils;15

16 importcom.genius.han.dao.BaseDao;17

18 @Transactional19 public class BaseDaoImpl implements BaseDao{20

21 private static final long serialVersionUID = 1L;22

23

24 private ClassentityClass;25

26 @PersistenceContext27 protectedEntityManager entityManager;28

29

30 @SuppressWarnings("unchecked")31 publicBaseDaoImpl()32 {33 Type type =getClass().getGenericSuperclass();34 Type[] parameterizedType =((ParameterizedType) type).getActualTypeArguments();35 entityClass = (Class) parameterizedType[0];36 }37

38 @Override39 publicT find(ID id)40 {41 if (id != null)42 {43 returnentityManager.find(entityClass, id);44 }45 return null;46 }47

48 @Override49 publicT find(ID id, LockModeType lockModeType)50 {51 if (id != null)52 {53 if (lockModeType != null)54 {55 returnentityManager.find(entityClass, id, lockModeType);56 }57 else

58 {59 returnentityManager.find(entityClass, id);60 }61 }62 return null;63 }64

65 @Override66 public voidpersist(T entity)67 {68 Assert.notNull(entity);69 entityManager.persist(entity);70

71 }72

73 @Override74 publicT merge(T entity)75 {76 Assert.notNull(entity);77 returnentityManager.merge(entity);78 }79

80 @Override81 public voidremove(T entity)82 {83 Assert.notNull(entity);84 if (entity != null)85 {86 entityManager.remove(entity);87 }88 }89

90 @Override91 publicQuery createNativeQuery(String sql)92 {93 if (!StringUtils.isEmpty(sql))94 {95 returnentityManager.createNativeQuery(sql);96 }97 return null;98 }99

100 @Override101 public voidrefresh(T entity)102 {103 Assert.notNull(entity);104 if (entity != null)105 {106 entityManager.refresh(entity);107 }108 }109

110 @Override111 public voidrefresh(T entity, LockModeType lockModeType)112 {113 Assert.notNull(entity);114 if (entity != null)115 {116 if (lockModeType != null)117 {118 entityManager.refresh(entity, lockModeType);119 }120 else

121 {122 entityManager.refresh(entity);123 }124 }125

126 }127

128 @SuppressWarnings("unchecked")129 @Override130 publicID getIdentifier(T entity)131 {132 Assert.notNull(entity);133 if (entity != null)134 {135 return(ID) entityManager.getEntityManagerFactory().getPersistenceUnitUtil()136 .getIdentifier(entity);137 }138 return null;139 }140

141 @Override142 public booleanisManaged(T entity)143 {144 Assert.notNull(entity);145 if (entity != null)146 {147 returnentityManager.contains(entity);148 }149 return false;150 }151

152 @Override153 public voiddetach(T entity)154 {155 Assert.notNull(entity);156 if (entity != null)157 {158 entityManager.detach(entity);159 }160 }161

162 @Override163 public voidlock(T entity, LockModeType lockModeType)164 {165 Assert.notNull(entity);166 Assert.notNull(lockModeType);167 if (entity != null && lockModeType != null)168 {169 entityManager.lock(entity, lockModeType);170 }171 }172

173 @Override174 public voidclear()175 {176 entityManager.clear();177 }178

179 @Override180 public voidflush()181 {182 entityManager.flush();183 }184

185

186 }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值