как заставить ejb3 перезагрузить значение из базы данных, а не использовать те из контекста - PullRequest
1 голос
/ 24 декабря 2010

Здравствуйте, у меня есть большая проблема, я надеюсь найти помощь здесь у меня есть две сущности

@Entity</p> <p>@Inheritance(strategy=InheritanceType.JOINED)</p> <p>@DiscriminatorColumn(name="Role", discriminatorType=DiscriminatorType.STRING) public class Utilisateur implements Serializable {</p> <p>private static final long serialVersionUID = 1L;</p> <pre><code>@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

@ Table (имя = "ResCom") @DiscriminatorValue ( "ResCom") Открытый класс ResCom расширяет Utilisateur {

/ ...

}

первое, что я делаю

ResCom rsCom= new ResCom(nom,prenom, email,civilite,
                     SysQl.crypePasse(pass));
 gr.create(rsCom);

Я проверяю свою базу данных и вижу, что свойство ResCom insert

но когда я проверяю значение роли, я получаю ноль

 Utilisateur tets= gr.findByEmail(email);

    message=tets.getEmail()+" and Role :"+tets.getRole()+"";

но у меня в басу это ResCom !!!!!

alt text

проблема исчезает при повторном развертывании проекта

Надеюсь, у вас есть решение

И заранее спасибо

извините за мой английский

1 Ответ

6 голосов
/ 25 декабря 2010

Не видя, как вы продолжаете загружать вашу сущность, я рекомендую использовать метод обновления менеджера сущностейЧто-то вроде

entityManager.refresh(yourEntity);  
...