使用springdatajpg框架查询数据时,使用@Transient注解获取非数据字段,值为空的问题!

问题描述:
自己想要查询数据表的一二级菜单数据,在实体类定义了children变量,并使用注解@Transient,其目的是由于数据库中不存在children字段,所以我给他加上@Transient,不然会报错。但查询出来的数据为空数组。如下图所示:



我尝试将注解@Transient写在ctime属性上,发现其数据也变为null。如下图所示:


因此,我认为@Transient这个注解是不能用在children这个属性上的,或许我用的方法错了。有没有大神告诉我该用什么注解。类似于MyBatis-Plus可以用@TableField(exist = false)

@Transient 这个注解,表示这个字段不会映射到数据库。你用了这个字段,JPA会完全忽略它,所以不会自动关联查询。

那如果用JPA我要添加一个非数据库字段的话,该怎么做呢,该添加什么注解?

@Transient 啊。。。这注解就表示“非数据库”字段。

我现在遇到这个问题时就是用这个注解的啊,但是我这个注解查询出来的数据为空数组,我要如何将children变量的数据正常显示出来!他是有数据的,不应该返回空数组啊!

JPA没这么智能,它不会自动给你封装其他字段。你要自己单独检索。

能不能教教我,大佬 :kissing_heart:

先把父级记录检索出来。遍历,根据父级ID,检索子记录。