2012-05-06 4 views
1

私は今後のファイナルのためのトレーニングとして小さなWebアプリケーションを開発しようとしています。私が間違っていることを理解できません。 jpaでマネージドビーンをインスタンス化できないのはなぜですか?

は、これらは私の* エンティティ *のL KundeKonto(many2many関係)、自動作成されたテーブル Kunde_Kontoは私のエンティティの2つのだけ主キーを持っています。

@Entity 
@NamedQueries({ 
    @NamedQuery(name="findKundeById", query="select k from Kunde k where k.svnr = :svnr"), 
}) 
public class Kunde implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @Column(precision=4, scale=0) 
    private Long svnr; 

    @ManyToMany 
    private List<Konto> konten; 
} 

@Entity 
@NamedQueries({ 
    @NamedQuery(name="findKontoByBesitzer", query="select k from Konto k join k.besitzer b where b.svnr = :svnr") 
}) 
public class Konto implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @Column(precision=4, scale=0) 
    private Long knr; 

    @ManyToMany(mappedBy="konten") 
    private List<Kunde> besitzer; 
} 

そして、これは私の管理対象Beanです:

翻訳

com.sun.faces.mgbean.ManagedBeanCreationException: Klasse at.pf.controller.KundenKontoList kann nicht instanziiert werden. 

KundenKontoListがinstatiatedことができないことを意味する例外が、ラインで投げられる

@ManagedBean 
@SessionScoped 
public class KundenKontoList implements Serializable { 
    private FacesContext fc = null; 
    private HttpServletRequest hsr = null; 
    private HttpSession hs = null; 

    @EJB 
    private KontoFacadeLocal kontoFacade; 

    @EJB 
    private KundeFacadeLocal kundeFacade; 

    private Kunde k; 
    private List<Konto> konten; 

    /** 
    * Creates a new instance of KundenKontoList 
    */ 
    public KundenKontoList() { 
     fc = FacesContext.getCurrentInstance(); 
     hsr = (HttpServletRequest) fc.getExternalContext().getRequest(); 
     hs = hsr.getSession(); 

     k = (Kunde) hs.getAttribute("kunde"); 
     konten = kontoFacade.findKontoByBesitzer(k); 
    } 
} 

konten = kontoFacade.findKontoByBesitzer(k); 

//method in the facade: 
@Override 
public List<Konto> findKontoByBesitzer(Kunde k) { 
    Query q = em.createNamedQuery("findKontoByBesitzer"); 
    q.setParameter("svnr", k.getSvnr()); 
    return q.getResultList(); 
} 

私はそれがkontoFacadeと関係があると思いますが、正確な問題は何か分かりません。

答えて

0

マネージドビーンの初期化に失敗すると、ejbsの注入が失敗していることを私に示唆します。より長いエラーメッセージがありますか?

関連する問題