JPA更新部分字段


第一次使用 JPA 用起來很舒服,可惜遇到不會的問題直接嗝屁了, 經常感覺並不比mybatis配合代碼生成器好使,少維護了不少sql還是挺好的,只不過看不到sql着實不太讓mybatis玩家放心

更新部分字段網上給的方法大都是將原來的數據補上,感覺太麻煩了,有一次修改字段名發現MySQL中原來的字段沒被刪掉,於是就想能不能多個實體對應同一張表,這樣它沒有get方法連null都取不出來看它怎么更新

然后我就嘗試了一下:

這是原來的數據:

Role.java

package kim.nzxy.auth.models.role;

import kim.nzxy.auth.models.permission.Permission;
import lombok.Data;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Set;

/**
 * @author xy
 */
@Data
@Entity
public class Role implements Serializable {

    @Id
    private Integer id;
    private String  name;
    private String  remark;

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "role_permission",
               joinColumns = {@JoinColumn(name = "role",
                                          referencedColumnName = "id")},
               inverseJoinColumns = {@JoinColumn(name = "permission",
                                                 referencedColumnName = "id")})
    private Set<Permission> permissions;
}

這是RoleSimple.java:

package kim.nzxy.auth.models.role;

import lombok.Data;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * @author Xiaoyan
 * @date 2019/12/13 9:54
 */
@Entity
@Table(name = "role")
@Data
public class RoleSimple {
    @Id
    private Integer id;
    private String  name;
    private String  remark;
}

這樣重新寫一個RoleSimpleRepository發現更新時沒將關聯表中的信息刪除,甚是開心,缺點就是多寫了一個實體類,誰有更簡單的方法請多指教


免責聲明!

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



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