Eae galera, estou com um problema quando tento referenciar a entidade UserRole, quando dou um getUserRoles(), ela mostrar com o tipo persistentbag e retorna um erro de inicialização do hibernate, ja tentei usar o hibernate.initialize porem não deu certo.
User.java
@Entity
@Table(name = "SFT_USER")
public class User extends AbstractEntity {
@Id
@SequenceGenerator(name="id_seq_sft_user", sequenceName = "seq_sft_user", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_seq_sft_user")
private Long id;
@NotEmpty(message = "Name is required")
@Column(name = "NAME")
private String name;
@NotEmpty(message = "Login is required")
@Column(name = "USERNAME", unique = true)
private String username;
@NotEmpty(message = "E-mail is required")
@Column(name = "EMAIL")
private String email;
@NotEmpty(message = "Password is required")
@JsonIgnore
@Column(name = "PASSWORD")
private String password;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
private List<UserRole> userRoles;
... Getters and Setters ...
}
UserRole.java
@Entity
@Table(name = "SFT_USER_ROLE")
public class UserRole extends AbstractEntity {
@Id
@SequenceGenerator(name="id_seq_sft_user_role", sequenceName = "seq_sft_user_role", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_seq_sft_user_role")
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ID_USER", referencedColumnName = "ID", nullable = false)
private User user;
@Enumerated(EnumType.STRING)
private EnumUserRole userRole;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="DT_REGISTER")
private Date dtRegister;
... Getters and Setters ...
}
UserRepository.java
@Repository
@Transactional
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
public class Example {
@Autowired
private UserRepository userRepository;
public void testExample(String username) throws UsernameNotFoundException {
User user = userRepository.findByUsername(username);
List<UserRole> userRoles = user.getUserRoles();
}
}