如何在JPA实体中创建非持久字段?

Ple*_*rds 1 java jpa spring-data-jpa spring-boot

我有一个实体,调用Userslogin,name和department作为存储在Users表中的字段.

我的Spring-Boot配置定义了为此应用程序中的用户提供系统管理员角色的部门.

关键问题是我希望登录end-point返回用户数据以及他/她是或不是系统管理员的附加信息.

我认为这些信息应该在User类中,但是我不希望这些信息与其他字段一起存储在数据库中,因为管理部门可能会更改,或者用户将我从一个部门更改为另一个部门而不管理系统.

(编辑)我将在用户请求login()时定义此IsManager字段:我将获取用户的department字段并检查其managerDepartment列表以将其设置为true ou false.

所以问题是将信息放在实体类中的非持久字段中(以及如何做)或者如果我可以在rest方法中更改ResponseEntity以添加其他信息(以及如何),是否正确?

And*_*nyk 13

简短的回答是使用@Transient注释.正确的答案是将UserEntity和UserDto分成两个不同的类,并使用MapStruct进行转换.

  • 我正在使用springframework.annotation中的@Transient。正确的是jaxa.persistence。 (2认同)