JPA discriminator value

I have a problem with JPA and discriminator value. value = 0 should be displayed as user, and value = 1 should be displayed as admin, but I only get users

@Entity
@Table(name="T_USERS")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="usergroup", discriminatorType = DiscriminatorType.INTEGER)
public abstract class UserModel implements Serializable {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="T_USERS_PK")
private int id;
@Column(name="username")
private String username;
@Column(name="password")
private String password;
@Column(name="firstname")
private String firstname;
@Column(name="lastname")
private String lastname;
@Column(name="usergroup")
private String usergroup;

-

@Entity
@DiscriminatorValue("0")
public class User extends UserModel {

-

@Entity
@DiscriminatorValue("1")
public class Admin extends UserModel {
+4
source share
1 answer

Your user group is a string and you set the discriminator Type = DiscriminatorType.INTEGER

@Column(name="usergroup")
private String usergroup;

Change the userGroup type to an integer and, if it is a row in your database (userGroup field type in the table), then remove the discriminator Type = DiscriminatorType.INTEGER

@DiscriminatorColumn(name="usergroup")

because defalut discinatorType is a string.

+3
source

All Articles