JPA操作SQL的几种方式
最近在使用Jpa写项目,随便记录一下几种操作SQL的方式,以下是我用的的几种方式。
第一种继承CrudRepository 直接用它里面的方法 如添加:
/*
* 添加 setYlfwjgid((long) 1) 默认医疗机构1
*/
@Transactional
public void saveGhhl(MzGhhl mzGhhl) {
Long id = idGeneratorUtil.generatorId(mzGhhl);
SessionUser sessionUser = SessionUtil.getSessionUser();
mzGhhl.setYlfwjgid(Long.valueOf(sessionUser.getYlfwjgid()));
mzGhhl.setAid(id);
mzGhhl.setSid(id);
mzGhhl.setJlzt(1);
if ("".equals(mzGhhl.getPym())) {
mzGhhl.setPym(hzzkService.getPym(mzGhhl.getMc()));
}
if ("".equals(mzGhhl.getWbm())) {
mzGhhl.setWbm(hzzkService.getWbm(mzGhhl.getMc()));
}
mzGhhlRepository.save(mzGhhl);
}
mzGhhlRepository继承了CrudRepository直接调用Save方法并传入对象即可。
还有一种方式就是自己在Repository写SQL如
@Modifying
@Query(value = "update MzGhlb set jlzt = 0 where sid in (?1)")
void removeById(Long sid);
@Query(value=“SQL语句”)
不过有些时候使用源代码所提供的方法不能达到自己的需求,如多表查询
public List findAll(RequestMessageTemplete reqt) throws Exception