Я пытаюсь разработать небольшое веб-приложение как тренинг для своих предстоящих финалов, и я не могу понять, что я делаю неправильно.Почему я не могу создать управляемый файл в jpa?
Это мой * Сущности * L Kunde
и Konto
(many2many-связь), автоматическое созданная таблица Kunde_Konto
имеет только две первичные ключи моих сущностей.
@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;
}
И это мой Managed Bean:
@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);
}
}
Исключение
com.sun.faces.mgbean.ManagedBeanCreationException: Klasse at.pf.controller.KundenKontoList kann nicht instanziiert werden.
что в переводе означает, что KundenKontoList
не может быть instatiated, выбрасывается на линии:
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
, но я не знаю, в чем проблема.