亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Spring Jpa Query 中驗證參數的最小長度

在 Spring Jpa Query 中驗證參數的最小長度

喵喔喔 2022-05-25 16:50:17
我們有一個數據對象 Foo,它有一個字符串屬性 Bar,還有一個 jpa 存儲庫,它有一個按 Bar 查找 Foo 的方法:@Entity@Table(name = "FOO")public class Foo {    @Id    @GeneratedValue    private Long id;    @Column(name = "BAR", length = 16, nullable = false)    private String bar;    public String getBar() {        return bar;    }    public void setBar(String bar) {        this.bar = bar;    }}public interface FooJpaRepository extends JpaRepository<Foo, Long> {    @Transactional(propagation = Propagation.REQUIRED, readOnly = true)    List<Foo> findByBar(String bar);}此查詢在多個地方使用。我們現在希望在保存到數據庫之前對 bar 的值進行哈希處理,這會增加字段的長度。我將@PrePersist在 Foo 類中添加一個方法來檢查 bar 的長度,然后再保存它。但是,我還想檢查findByBar方法中 bar 參數的長度,以便當在其他地方使用它時,其他開發人員會被提醒他們使用的是未散列值而不是散列值。如果不創建 JpaRepository 的實現,這可能嗎?
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

如果您使用的是 Spring Boot,則可以使用驗證:


https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-validation


首先使用 @Validate 對 repo 進行注釋,然后在方法參數上使用任何 Bean Validation Annotation。


例如:


@Validate

public interface FooJpaRepository extends JpaRepository<Foo, Long> {


    @Transactional(propagation = Propagation.REQUIRED, readOnly = true)

    List<Foo> findByBar(@Size(max = 16) String bar);

}


查看完整回答
反對 回復 2022-05-25
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號