jpa @Query()参数设置,?、?X、实体类对象参数设置

一、service层事务(update/delete)

@Transactional(rollbackFor = Exception.class)

二、@Query()参数设置

?x  和:XX不能混用

package cc.ash.test;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

public interface StuDao extends JpaRepository<Stu, Long>, JpaSpecificationExecutor<Stu> {
                                                    //主键类型
    @Modifying
    @Query(value = "update Stu wxpay set stu.name = :name, stu.alias = :alias, " +
            "stu.age = :age where stu.id = :id")
    void updatePayState(@Param("name") String stuName,
                        @Param("alias") String stuAlias,
                        @Param("age") int stuAge,
                        @Param("id") String stuId);

    @Modifying
    @Query(value = "update Stu wxpay set stu.name = ?1, stu.alias = ?3, " +
            "stu.age = ?2 where stu.id = ?4")
    void updatePayState(String stuName,
                        int stuAge,
                        String stuAlias,
                        String stuId);

    @Modifying
    @Query(value = "update Stu s set s.name = :#{#stu.name}, s.age = :#{#stu.age}, " +
            "s.alias = :#{#stu.alias} where s.id = :#{#stu.id}")
    int updatePayState2(@Param("stu") Stu stu);
}

2.实体类

package cc.ash.test;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "tbl_stu", indexes = {@Index(name = "idx_索引名字", columnList = "建立索引的属性")})
public class Stu {

    @TableGenerator(
            name = "StuGenerator",
            table = "tbl_stu",
            pkColumnName = "app_seq_name",
            pkColumnValue = "tbl_stu_seq",
            valueColumnName = "app_seq_value",
            initialValue = 1000,
            allocationSize = 1
    )

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "WxpayFundFlowGenerator")
    private Long id;

    @Column(columnDefinition = "varchar(10) COMMENT ‘名字‘")
    private String name;

    //省略
    private int age;
    private String alias;
}

原文地址:https://www.cnblogs.com/foolash/p/11794063.html

时间: 2024-11-10 16:00:02

jpa @Query()参数设置,?、?X、实体类对象参数设置的相关文章

springmvc关于前台日期作为实体类对象参数类型转换错误

页面报错: 后台错误: Field error in object 'user' on field 'birthday': rejected value [2013-06-24]; codes [typeMismatch.user.birthday,typeMismatch.birthday,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessag

NSDictionary转化为实体类对象

方法一: 使用objective-c NSObject自带的方法 setValuesForKeysWithDictionary:dict 作用是: 如果NSDictionary中的key和实体类对象的属性名相同,  那么把该key的value 设置到实体类对应的属性 - (instancetype)initWithDict:(NSDictionary *)dict { if (self = [super init]) { [self setValuesForKeysWithDictionary:

solr搜索结果转实体类对象的两种方法

问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 1 public class User{ 2 /** 3 * id 4 */ 5 @Field 6 private String id; 7 /** 8 * 用户名 9 */ 10 @Field 11 private String userName; 12 /** 13 * 密码 14 */ 15 @Field 16 private S

泛型集合排序,根据实体类对象的某个属性排序

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; import sy.model.aite.analysis.SelfTestAnalysis; /** * 泛

C#实体类对象修改日志记录

C#实体类对象修改日志记录 类型验证帮助类 public static class TypeExtensions { public static bool InheritsFrom(this Type source, Type target) { if (null == source || null == target) { return false; } if (source == target) { return true; } if (source.GetTypeInfo().IsGene

android activity传递实体类对象

通过实现Parcelable接口序列化对象的步骤: 1.实现Parcelable接口.2.并且实现Parcelable接口的public void writeToParcel(Parcel dest, int flags)方法 .3.自定义类型中必须含有一个名称为CREATOR的静态成员,该成员对象要求实现Parcelable.Creator接口及其方法. public class Person implements Parcelable {     public static final Pa

模拟实现MyBites中通过SQL反射实体类对象功能

话不多说,直接上干货! package cn.test; import java.lang.reflect.Method; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Timestamp; impor

提取实体类对象和实体类 提取属性 提取关系

提取实体类和实体对象 设计者可以依据用例文本描述中出现的名词和名词短语来提取实体对象[abbott ,1983] 另一种方法是根据预先定义的概念型列表,逐项判断系统中是否有对应的实体对象,这种方法可以作为第一种方法的补充 对于一般的软件系统,一般可以从如下的概念出发寻找系统中的实体对象: 物理的或者实在的对象 人的角色 组织 时间 地点 规格说明或事务的描述 规则和策略 找到实体类后可以按照对象共性的多少对它们进行分组,以抽象出分析模型中的实体类,但是在分析阶段很难决定某一个实体对象是应该和其他

JAVA中 Map转换实体类对象简单实现 JSON

原文链接:https://blog.csdn.net/qq_23140197/article/details/86503875   (侵删) 开发的过程中往往依赖的表过多直接按Map来传递数值,某些场景需要把Map转换为实体类,这里贴一个最简洁的方法,依赖阿里的FastJSon. maven引入 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId>