使用@Transient注解不起作用

想在一个实体类中添加一个属性,不去关联实体类对应的表的任何字段,但是在属性上使用@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;
就可以啦!大家可以两种方法都试试~

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
@Transient注解的作用是指定该属性或字段不是永久的。它可以在实体类、映射超类或可嵌入类的属性或字段上使用。在Java的serialization机制中,当持久化对象时,有些特殊的对象数据成员我们不想用serialization机制来保存。通过在这些成员前加上@Transient注解,可以关闭serialization机制对其的保存。被@Transient注解修饰的属性将不会被包括在序列化的表示中,而非@Transient注解修饰的属性将被包括进去。此外,在实体类中使用了@Table注解后,如果想要添加表中不存在的字段,也可以使用@Transient注解。ORM框架会忽略带有@Transient注解的属性,它只起到辅助作用,不会映射到数据库表中的字段。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [@Transient注解使用](https://blog.csdn.net/qq_39827935/article/details/84976020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [@Transient注解](https://blog.csdn.net/cqzdmm/article/details/111040966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值