继承实体

时间:2018-03-09 18:25:29

标签: spring spring-boot

如何在Spring Boot中获取用户实体,具体取决于作为用户实体属性的角色,以获取扩展用户的实体。例如,如果user.role =" admin"获取Admin类型的对象,该对象继承User。

1 个答案:

答案 0 :(得分:0)

使用https://docs.oracle.com/javaee/5/api/javax/persistence/DiscriminatorValue.html

例如:

@Entity
@DiscriminatorColumn(name="ROLE", discriminatorType=STRING, length=20)
@DiscriminatorValue("user")
public class User{ ... }

@Entity
@DiscriminatorValue("admin")
public class Admin extends User { ... }

如果您使用EntityManager并假设ID为1的用户是管理员,则可能有效:

Admin admin = (Admin) em.find(User.class, 1);