首页 > 编程知识 正文

jpa实体类,qualifier注解

时间:2023-05-03 08:01:04 阅读:106030 作者:1398

jql是一种面向对象的查询语言,也可以在自定义JPQL中操作UPDATE和DELETE。

JPQL操作注意事项:

(1) JPQL不支持插入操作。

) UPDATE或DELETE操作必须用@Query和@Modifying注释进行限定。

)3) UPDATE或DELETE操作必须使用事务,并且必须在定义的业务逻辑层(Service层)中在方法中使用@Transactional注释来管理事务。

【示例】用自定义JPQL完成更新和删除操作。

(1)数据库访问层(Dao层)

在数据库访问层(Dao层)中,创建UserDao.java用户信息数据库访问接口,并继承JpaRepository接口。 定制UPDATE和DELETE的操作方式。

package com.pjb.jpauserdemo.dao; import com.pjb.jpauserdemo.entity.user; import com.pjb.jpauserdemo.entity.userinfo; importorg.spring framework.data.JPA.repository.JPA repository; importorg.spring framework.data.JPA.repository.modifying; importorg.spring framework.data.JPA.repository.query; importorg.spring framework.data.repository.query.param; importorg.spring framework.stereotype.repository; /** *用户信息数据库访问接口* @ author pan _ jun Biao * */@ repositorypublicinterfaceuserdaoextendsjparepositoryuserinfo, Integer{ /** *修改用户*/@ modifying @ query (updateuserinfousetu.username=: name where u.userid=: id ' ) publl @ modifying @ query (deletefromuserinfouwhereu.userid=: id () public int deleteuser (@ param ) ) (maram ) ) 在数据库访问层(Dao层)中,必须声明带有@Query和@Modifying注释,并定义个性化更新和删除操作。

注意:

在业务逻辑层(Service层)中,创建一个UserService.java用户业务逻辑界面。

package com.pjb.jpauserdemo.service; /** *用户业务逻辑接口* @ author pan _ jun Biao * */publicinterfaceuserservice {/* *用户*/public int update user (ininblic int upate ) 修改striid ) /**用户* /删除公共删除用户(int userid ) }在业务逻辑层(Service层)下创建一个impl目录,然后在该目录下创建userid

package com.pjb.jpauserdemo.service.impl; import com.pjb.jpauserdemo.Dao.userdao; import com.pjb.jpauserdemo.service.userservice; importorg.spring framework.beans.factory.annotation.auto wired; importorg.spring framework.stereotype.service; importorg.spring framework.transaction.annotation.transactional; /** *用户业务逻辑类* @ author pan _ jun Biao * */@ servicepublicclassuserserviceimplimplementsuserservice { @ autowiredprivive @ transactionalpublicintupdateuser (int userid,String userName ) return userdao.update user (userid,username )/* *用户} }要在}} (2)业务逻辑层(Service层)业务逻辑层(服务层)中实现方法,必须使用@Transactional注释管理事务。

注意:

在测试层(Test层)中,创建UserServiceTest.java )用户信息测试类。

package com.pjb.jpauserdemo.service.impl; import com.pjb.jpauserdemo.service.userservice; import org.junit.Test; import org.junit.runner.RunWith; importorg.spring framework.beans.factory.annotation.auto wired; importorg.spring framework.boot.test.context.springboottest; importorg.spring framework.test.context.JUnit4. spring runner; /** *用户信息测试类* @ author pan _ jun Biao * */@ springboottest @ run with (publicclassuserservicetst.class ) @Test public void updateUser () userservice.updateuser(1,' pan_junbiao的博客) ); } /** *测试:用户*/@Test public void deleteUser () { userService.deleteUser(1) ) 1; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。