Olá pessoal!
Bem, estou trabalhando com um relacionamento @OneToMany no EJB3 como pode ser visto no código abaixo. Preciso que após persistir um Usuario e o seu respectivo UsuarioSalario, eu possa listar os usuários e seus usuariosalarios relacionados. No entanto, o que acontece é que todos os usuários e usuariossalarios são listados, com excessão dos usuariossalarios daquele que acabou de ser salvo relacionados. No entanto, olho no banco, e o usuariosalario relacionado a ele foi salvo corretamente. Se eu recarregar a pagina e listar, todos são listados corretamente. Ou melhor, imagino que eu precise forçar a listagem acontecer somente após o valor ter sido persistido no banco. Já tentei usar anotações para limpar o cache da entidade para que ele pegue o valor mais atual (setHint, cacheable na namedquery, etc), mas não funciona. Estou usando glassfish e toplink.
@Entity
@Table(name = "usuario")
@NamedQueries({
@NamedQuery(name = "Usuario.findAll", query = "SELECT u FROM Usuario u"),
})
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
(...)
@OneToMany(mappedBy = "usuario", cascade=CascadeType.ALL, fetch= FetchType.LAZY)
private Set<UsuarioSalario> usuariosSalario;