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

Koh*_*n95 1 jpa java-ee ejb-3.0 java-ee-6

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

@Entity

@Inheritance(strategy=InheritanceType.JOINED)

@DiscriminatorColumn(name="Role", discriminatorType=DiscriminatorType.STRING) public class Utilisateur implements Serializable {

private static final long 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 ;
Run Code Online (Sandbox Code Playgroud)

//... }

@Entity

@Inheritance(strategy=InheritanceType.JOINED)

@DiscriminatorColumn(name="Role", discriminatorType=DiscriminatorType.STRING) public class Utilisateur implements Serializable {

private static final long serialVersionUID = 1L;

@Entity
Run Code Online (Sandbox Code Playgroud)

//... }

ResCom rsCom= new ResCom(nom,prenom, email,civilite,
                     SysQl.crypePasse(pass));
 gr.create(rsCom);
Run Code Online (Sandbox Code Playgroud)

@Table(name ="ResCom")@DiscriminatorValue("ResCom")公共类ResCom扩展了Utilisateur {

/ ...

}

我做的第一件事

 Utilisateur tets= gr.findByEmail(email);

    message=tets.getEmail()+" and Role :"+tets.getRole()+"";
Run Code Online (Sandbox Code Playgroud)

我检查我的数据库我看到该属性是ResCom插入

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

@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 ;
Run Code Online (Sandbox Code Playgroud)

但在我的低音中,ResCom !!!!!

替代文字

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

我希望你有一个解决方案

并提前谢谢你

对不起我的英语不好

小智 6

如果没有看到你如何坚持,加载你的实体,我建议使用实体管理器的刷新方法.就像是,

entityManager.refresh(yourEntity);  
Run Code Online (Sandbox Code Playgroud)