S SmartDocs
シリーズ: Java java 55 行 · 更新日 2026-04-09

SystemUser.java

Java/Baasid/src/main/java/com/baasid/entity/SystemUser.java

package com.baasid.entity;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

import java.util.UUID;

/**
 * 系統使用者實體,對應資料表 {@code system_user}。
 * <p>
 * 密碼欄位存放 BCrypt 雜湊後字串,非明文。
 */
@Entity
@Table(name = "system_user")
public class SystemUser {

    @Id
    @GeneratedValue(strategy = GenerationType.UUID)
    @Column(name = "_id", updatable = false, nullable = false)
    private UUID id;

    @Column(name = "account", length = 128, nullable = false, unique = true)
    private String account;

    @Column(name = "password", length = 128)
    private String password;

    @Column(name = "name", length = 128)
    private String name;

    public SystemUser() {}

    /** 建立新使用者時使用(持久化前需自行將密碼經 {@link org.springframework.security.crypto.password.PasswordEncoder} 編碼)。 */
    public SystemUser(String account, String password, String name) {
        this.account = account;
        this.password = password;
        this.name = name;
    }

    public UUID getId() { return id; }
    public void setId(UUID id) { this.id = id; }

    public String getAccount() { return account; }
    public void setAccount(String account) { this.account = account; }

    public String getPassword() { return password; }
    public void setPassword(String password) { this.password = password; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

関連記事