springjpa定义引用类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springjpa定义引用类型相关的知识,希望对你有一定的参考价值。

参考技术A java和jpa。
所有的关系都是单向的。这个关系数据库不同,关系数据库,通过外键定义并查询,使得反向查询总是存在的。
JPA还定义了一个Many关系,它与Many关系类似,但反向关系是ManyToOne关系。OneToMany与JPA中ManyToMany关系的主要区别在于,ManyToMany总是使用中间关系连接表来存储关系,OneToMany可以使用连接表或者目标对象的表引用中的外键源对象表的主键。

SpringJPA的动态查询

参考技术A 最近开发遇到的一些查询用例,简单记录下

一、定义Repository
@Repository
public interface TransTaskManager extends JpaRepository<TransTask, Long>, JpaSpecificationExecutor<TransTask>

二、Repository查询语句

1,对象作为参数传输
@Modifying
@Transactional
@Query("update TransTask t set t.flowStatus =:##transTask.flowStatus where t.flowStatus =:##oldStatus")
int updateFlowStatus(@Param("transTask") TransTask transTask, @Param("oldStatus") int oldStatus);

2,字符串作为参数:
@Modifying
@Transactional
@Query("update TransTask t set t.transId =:transId where t.taskId =:taskId")
int updateTransId(@Param("transId") String transId, @Param("taskId") String taskId);

3,参数定位
@Query(" from TransTask t where t.taskId = ?1 and t.taskName like ?2 and t.flowStatus=100 and t.isDelete=2 ")
Page<TransTask> queryByParams(@Param("taskId") String taskId, @Param("taskName") String taskName, Pageable pageable);

4,原生sql
@Query(value = "select t.playUrl from ty_trans_task t where t.taskId =:taskId", nativeQuery = true)
String getPlayUrls(@Param("taskId") String taskId);

5,Example_实例查询
Person person = new Person();
person.setFirstname("Dave"); //Firstname = 'Dave'

ExampleMatcher matcher = ExampleMatcher.matching() .withMatcher("name", GenericPropertyMatchers.startsWith()) //姓名采用“开始匹配”的方式查询
.withIgnorePaths("int"); //忽略属性:是否关注。因为是基本类型,需要忽略掉

Example<Person> example = Example.of(person, matcher); //Example根据域对象和配置创建一个新的ExampleMatcher

6,specification查询

以上是关于springjpa定义引用类型的主要内容,如果未能解决你的问题,请参考以下文章

引用类型变量,对象,值类型,值传递,引用传递 区别与定义

引用类型的变量

C++--------复合类型

C++温故补缺:引用类型

Java定义了哪些基本数据类型?基本数据类型和引用数据类型的特点?

引用数据类型