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();再次感谢你