簡體   English   中英

spring 引導的自動值生成

[英]Auto value generation for spring boot

我是 NodeJS 后端開發人員,開始學習 spring 引導,我只是在徘徊,是否可以使用不同字段的現有值生成字段值。

讓我澄清一下我的要求。 假設它是我的 model,

import javax.persistence.*;
import java.util.Date;
import java.util.UUID;

@Entity
@Table(name = "tbl_user")
public class UserModel {

    @Id
    @GenericGenerator(name = "UUIDGenerator", strategy = "uuid2")
    @GeneratedValue(generator = "UUIDGenerator")
    @Column(name = "uuid", updatable = false, nullable = false)
    private UUID uuid;

    @Column(name = "userName", updatable = true, nullable = false)
    private String userName;

    @Column(name = "userNameToLower", updatable = true, nullable = false)
    private String userNameToLower;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserNameToLower() {
        return userNameToLower;
    }

    public void setUserNameToLower(String userNameToLower) {
        this.userNameToLower = userNameToLower;
    }
}

基於userName (將從請求正文中獲取,我可以在將其推送到 DB 時生成userNameToLower ,而無需在 controller 上明確編碼。

請告訴我。 這將是一個很大的幫助。

提前致謝。

您可以使用@PrePersist@PreUpdate注釋來設置在保存或更新實體之前調用的方法。 如果要將邏輯移動到單獨的 class,請使用@EntityListeners

@Entity
@Table(name = "tbl_user")
public class UserModel {
  // ...

  @PrePersist
  private void prePersist() {

    // simple example without null check, etc
    username = username.toLowerCase();
  }
}

一些例子:

在 hibernate 中,有辦法。 試試下面:

@Column(name = "userName")
@ColumnTransformer(write = "LOWER(userName)")
private String userName;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM