Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用有状态EJB在JPA生命周期中不起作用_Java_Jpa_Events_Ejb_Stateful - Fatal编程技术网

Java 使用有状态EJB在JPA生命周期中不起作用

Java 使用有状态EJB在JPA生命周期中不起作用,java,jpa,events,ejb,stateful,Java,Jpa,Events,Ejb,Stateful,我尝试在Listenner中注入一个SFSB来获取用户,但当尝试在实体类中注入“usuarioSessaoService”Bean时,该Bean不会被创建并生成空指针。在BaseEntityListener中注入“usuarioSessaoService”Bean时,将创建该Bean,但getUsuarioSessao()返回null 我在不同的无状态类(如ProjetoServiceImpl)中使用“usuarioSessaoService”Bean进行了测试,效果良好 @Log @有状态(n

我尝试在Listenner中注入一个SFSB来获取用户,但当尝试在实体类中注入“usuarioSessaoService”Bean时,该Bean不会被创建并生成空指针。在BaseEntityListener中注入“usuarioSessaoService”Bean时,将创建该Bean,但getUsuarioSessao()返回null

我在不同的无状态类(如ProjetoServiceImpl)中使用“usuarioSessaoService”Bean进行了测试,效果良好

@Log
@有状态(name=“UsuarioSessaoService”)
公共类UsuarioSessaoServiceImpl实现UsuarioSessaoService,可序列化{
私有静态最终长serialVersionUID=1L;
私人用膳用膳;
@凌驾
公共无效定义(Usuario Usuario){
this.usuario=usuario;
}
@凌驾
公共Usuario getUsuarioSessao(){
返回usuario;
}    
}
@无状态
@映射超类
@ToString@EqualsAndHashCode
@EntityListeners(BaseEntityListenner.class)
公共类BaseEntity实现可序列化{
私有静态最终长serialVersionUID=1L;
@短暂的
@EJB(name=“UsuarioSessaoService”)
私人USUARIOSESASASOSERVICE USUARIOSASASASASASOSERVICE;
@身份证
@GeneratedValue(策略=GenerationType.SEQUENCE)
@吸气剂
私人长id;
@许多酮
@JoinColumn(name=“USUARIO\u alteraco\u ID”)
@Getter@Setter
私人Usuario Usuario Alteracao;
@列(name=“DATA\u alteraco”)
@时态(javax.persistence.TemporalType.TIMESTAMP)
@吸气剂
私人日期数据交换;
@纵队
@对数列
@Getter@Setter
私有布尔值=真;
@PrePersist@PreUpdate
私有void setCamposDefault()引发UsuarioVazioException,NamingException{
DataAlteraco=新日期();
usuarioalteraco=usuarioSessaoService.getUsuarioSessao();//usuarioSessaoService为空
}
}
公共类BaseEntityListener实现可序列化{
私有静态最终长serialVersionUID=1L;
@EJB(name=“UsuarioSessaoService”)
私人USUARIOSESASASOSERVICE USUARIOSASASASASASOSERVICE;
@PrePersist@PreUpdate
私有void setCamposDefault(BaseEntity实体){
entity.setUsuarioAlteracao(UsuarioseSSAO.getUsuarioSessao());//UsuarioseSSAO.getUsuarioSessao()为空
}
}
@无状态(name=“ProjetoService”)
公共类ProjetoService impl实现ProjetoService{
...
@EJB(name=“UsuarioSessaoService”)
私人USUARIOSESASASOSERVICE USUARIOSASASASASASOSERVICE;
@交易的
@凌驾
公共萨尔瓦项目(项目,乌萨里奥-乌萨里奥){
Usuariosessao服务。定义Usuariosessao(usuario);
返回projetoDAO.edit(projeto);
}
...
}
我可以从@PrePersist和@PreUpdate事件中获得“usuario”的值吗