jpa @Query()參數設置,:冒號方式、?NO.問號方式、實體類對象參數設置


一、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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM