Jpa 如何强制ejb3从数据库中重新加载值,而不使用上下文中的值

Jpa 如何强制ejb3从数据库中重新加载值,而不使用上下文中的值,jpa,jakarta-ee,ejb-3.0,java-ee-6,Jpa,Jakarta Ee,Ejb 3.0,Java Ee 6,你好这里我有一个大问题,我希望能找到帮助 这里我有两个实体 @实体 @继承(策略=InheritanceType.JOINED) @DiscriminatorColumn(name=“Role”,discriminatorType=discriminatorType.STRING) 公共类利用器实现可序列化{ 私有静态最终长serialVersionUID=1L @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(

你好这里我有一个大问题,我希望能找到帮助 这里我有两个实体


@实体

@继承(策略=InheritanceType.JOINED)

@DiscriminatorColumn(name=“Role”,discriminatorType=discriminatorType.STRING) 公共类利用器实现可序列化{

私有静态最终长serialVersionUID=1L

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name="id")
private Long id;
@Column(name="nom",nullable=false)
private String nom;


@Column(name="Role",nullable=false, insertable=false)
private String Role ;
//。。。 }

@Entity
@表(name=“ResCom”) @鉴别器值(“重新扫描”) 公共类ResCom扩展了利用率{

/

}

我做的第一件事

ResCom rsCom= new ResCom(nom,prenom, email,civilite,
                     SysQl.crypePasse(pass));
 gr.create(rsCom);
我检查了我的数据库,发现属性是ResCom insert

但是当我检查role的值时,我得到null

 Utilisateur tets= gr.findByEmail(email);

    message=tets.getEmail()+" and Role :"+tets.getRole()+"";
但在我的低音中,它是重调的

当我再次部署项目时,问题就消失了

我希望你有一个解决办法

提前谢谢你


抱歉,我的英语不太好

如果看不到您是如何坚持的,请加载您的实体,我建议使用实体管理器的刷新方法。大概

entityManager.refresh(yourEntity);  

在不了解如何持久化的情况下,加载实体,我建议使用实体管理器的刷新方法。大概

entityManager.refresh(yourEntity);  

非常感谢你现在与他们的比赛;Object t=(Object)em.createNamedQuery(“usilisateur.findByEmail”).setParameter(“email”,email.getSingleResult();em.refresh(t);现在问题解决了,第一次我只是添加em.refresh();再次感谢你,谢谢你现在和他们很般配;Object t=(Object)em.createNamedQuery(“usilisateur.findByEmail”).setParameter(“email”,email.getSingleResult();em.refresh(t);现在问题解决了,第一次我只是添加em.refresh();再次感谢你