package fi.otavanopisto.pyramus.domainmodel.security; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.ManyToOne; import javax.persistence.TableGenerator; import javax.validation.constraints.NotNull; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.Store; import fi.otavanopisto.pyramus.domainmodel.users.Role; @Entity @Inheritance(strategy=InheritanceType.JOINED) public class RolePermission { /** * Returns internal unique id * * @return Internal unique id */ public Long getId() { return id; } public Role getRole() { return role; } public void setRole(Role role) { this.role = role; } public Permission getPermission() { return permission; } public void setPermission(Permission permission) { this.permission = permission; } @Id @GeneratedValue(strategy=GenerationType.TABLE, generator="RolePermission") @TableGenerator(name="RolePermission", allocationSize=1, table = "hibernate_sequences", pkColumnName = "sequence_name", valueColumnName = "sequence_next_hi_value") private Long id; @ManyToOne private Permission permission; @NotNull @Column (nullable = false) @Enumerated (EnumType.STRING) @Field (store = Store.NO) private Role role; }