JPA Discriminator Value

eclipselink, java, jpa

Solution

Your usergroup is string and you set discriminatorType = DiscriminatorType.INTEGER

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

Change userGroup type to integer and if it is string in your database (type of userGroup field in table) then remove discriminatorType = DiscriminatorType.INTEGER

@DiscriminatorColumn(name="usergroup")

because defalut of discriminatorType is string.

Problem

I have a problem with JPA and Discriminator Value. value=0 should be mapped as a `user` and value=1 should be mapped as a `admin` but I only get the 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 { ```

Original source