想在一个实体类中添加一个属性,不去关联实体类对应的表的任何字段,但是在属性上使用@Transient注解还是报错,显示在表中找不到该属性对应的字段。
实体类如下:
package com.gym.charity_blockchain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import javax.persistence.*;
import java.util.List;
@JsonIgnoreProperties({"handler", "hibernateLazyInitializer"})
@Data
public class AdminMenu {
@TableId(type = IdType.AUTO)
private int adminmenuId;
private String adminmenuPath;
private String adminmenuName;
private String adminmenuNamezh;
private String adminmenuIconclass;
private String adminmenuComponent;
private int adminmenuParentid;
@Transient
private List<AdminMenu> children;
}
一般网上的教程都是在实体类的属性上加@Transient注解(或者在get方法上加,也有的报错原因是导错包),但是这些方法都试了没啥用,然后我觉得可能是因为将实体类与数据库中的表进行映射时,由于我直接用的是@Data注解,和其他方法将实体类与数据库中的表进行映射的可能不太一样。(具体原因暂未知,等做完毕设再好好研究。。。)
然后看到这个解决方法@Transient不起作用的问题
重要的不是正文,是下面的评论!
评论里有两种方法
-
方法一
TableField(exist = false) -
方法二
直接在属性前面加 transient
我用了方法二,即
private transient List<AdminMenu> children;
就可以啦!大家可以两种方法都试试~