如何访问OneToMany Hibernate数据库并显示datatable?

如何访问OneToMany Hibernate数据库并显示datatable?,hibernate,jsf,Hibernate,Jsf,我在本地主机FirebirdSQL上有一个数据库。我有两个类Empresa.java和ldario.java it-OneToMany-relationship。如何通过xhtml中的新数据表中的Empresa.java访问ldario.java数据。我可以通过empresadaimpl sessionFactory.getCurrentSession().createQuery(“来自Empresa”).list()访问Empresa.java;但是我不知道在ldariodaoimpl ses

我在本地主机FirebirdSQL上有一个数据库。我有两个类Empresa.java和ldario.java it-OneToMany-relationship。如何通过xhtml中的新数据表中的Empresa.java访问ldario.java数据。我可以通过empresadaimpl sessionFactory.getCurrentSession().createQuery(“来自Empresa”).list()访问Empresa.java;但是我不知道在ldariodaoimpl sessionFactory.getCurrentSession().createQuery(“来自ldario”).list()中是否可以;对不起,我正在学英语。非常感谢你。 Empresa------->LDiario

Empresa.java

@Entity
@Table(name = "empresas")
public class Empresa implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;

@OneToMany
@JoinColumn(name = "empresa")  
private List<LDiario> ldiarios; 
@Entity
@Table(name = "LDIARIO2014")
public class LDiario implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;  

@ManyToOne  
@JoinColumn (name = "empresa") 
private Empresa empresa;
@ManagedBean(name="empresaBean")
@ViewScoped
@Component
public class EmpresaBean {

    @Autowired
    private EmpresaService empresaService;
    private Empresa empresa;
    private Empresa selectedEmpresa;


    public EmpresaService getEmpresaService() {
        return empresaService;
    }

    public Empresa getSelectedEmpresa() {
        return selectedEmpresa;
    }

    public void setSelectedEmpresa(Empresa selectedEmpresa) {
        this.selectedEmpresa = selectedEmpresa;
    }

    public void setEmpresaService(EmpresaService empresaService) {
        this.empresaService = empresaService;
    }

    public EmpresaBean(){
    }

    public List<Empresa> getEmpresaList(){

        return empresaService.getAll();
    }

    public Empresa getEmpresa() {
        return empresa;
    }
    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }  

    public String View() {

        return "/pages/menu/menuPrincipal?faces-redirect=true";
    }
}
@ManagedBean(name="ldiarioBean")
@ViewScoped
@Component
public class LDiarioBean {

    private LDiario ldiario;
    @Autowired
    private LDiarioService ldiarioservice;

    private LDiario selectedLdiario;

    public LDiarioService getLdiarioservice() {
        return ldiarioservice;
    }
    public void setLDiarioservice(LDiarioService ldiarioservice) {
        this.ldiarioservice = ldiarioservice;
    }

    public LDiarioBean(){

    }
    public LDiario getLdiario() {
        return ldiario;
    }
    public void setLdiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
    public LDiario getSelectedLdiario() {
        return selectedLdiario;
    }
    public void setSelectedLdiario(LDiario selectedLdiario) {
        this.selectedLdiario = selectedLdiario;
    }    

    public List<LDiario> getLDiarioList(){  
        return ldiarioservice.getAll();
    }

    public LDiario getLDiario() {
        return ldiario;
    }
    public void setLDiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
}
@Transactional
@Repository
public class LDiarioDaoImpl implements LDiarioDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<LDiario> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from LDiario").list();
    }
}
@Transactional
@Repository
public class EmpresaDaoImpl implements EmpresaDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<Empresa> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from Empresa").list();
    }
}
EmpresaBean.java

@Entity
@Table(name = "empresas")
public class Empresa implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;

@OneToMany
@JoinColumn(name = "empresa")  
private List<LDiario> ldiarios; 
@Entity
@Table(name = "LDIARIO2014")
public class LDiario implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;  

@ManyToOne  
@JoinColumn (name = "empresa") 
private Empresa empresa;
@ManagedBean(name="empresaBean")
@ViewScoped
@Component
public class EmpresaBean {

    @Autowired
    private EmpresaService empresaService;
    private Empresa empresa;
    private Empresa selectedEmpresa;


    public EmpresaService getEmpresaService() {
        return empresaService;
    }

    public Empresa getSelectedEmpresa() {
        return selectedEmpresa;
    }

    public void setSelectedEmpresa(Empresa selectedEmpresa) {
        this.selectedEmpresa = selectedEmpresa;
    }

    public void setEmpresaService(EmpresaService empresaService) {
        this.empresaService = empresaService;
    }

    public EmpresaBean(){
    }

    public List<Empresa> getEmpresaList(){

        return empresaService.getAll();
    }

    public Empresa getEmpresa() {
        return empresa;
    }
    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }  

    public String View() {

        return "/pages/menu/menuPrincipal?faces-redirect=true";
    }
}
@ManagedBean(name="ldiarioBean")
@ViewScoped
@Component
public class LDiarioBean {

    private LDiario ldiario;
    @Autowired
    private LDiarioService ldiarioservice;

    private LDiario selectedLdiario;

    public LDiarioService getLdiarioservice() {
        return ldiarioservice;
    }
    public void setLDiarioservice(LDiarioService ldiarioservice) {
        this.ldiarioservice = ldiarioservice;
    }

    public LDiarioBean(){

    }
    public LDiario getLdiario() {
        return ldiario;
    }
    public void setLdiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
    public LDiario getSelectedLdiario() {
        return selectedLdiario;
    }
    public void setSelectedLdiario(LDiario selectedLdiario) {
        this.selectedLdiario = selectedLdiario;
    }    

    public List<LDiario> getLDiarioList(){  
        return ldiarioservice.getAll();
    }

    public LDiario getLDiario() {
        return ldiario;
    }
    public void setLDiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
}
@Transactional
@Repository
public class LDiarioDaoImpl implements LDiarioDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<LDiario> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from LDiario").list();
    }
}
@Transactional
@Repository
public class EmpresaDaoImpl implements EmpresaDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<Empresa> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from Empresa").list();
    }
}
@ManagedBean(name=“empresaBean”)
@视域
@组成部分
公共类EmpresaBean{
@自动连线
私人经营服务;
私营企业;
私营企业选择经营;
公共EmpresaService getEmpresaService(){
退货服务;
}
公共Empresa getSelectedEmpresa(){
返回所选的mpresa;
}
公共作废设置已选副本(已选副本){
this.selectedEmpresa=selectedEmpresa;
}
公共无效设置EmpresaService(EmpresaService EmpresaService){
this.empresaService=empresaService;
}
公营菜豆(){
}
公共列表getEmpresaList(){
返回empresaService.getAll();
}
公共企业{
返回empresa;
}
公共无效设置Empresa(Empresa Empresa){
this.empresa=empresa;
}  
公共字符串视图(){
返回“/pages/menu/menuPrincipal?faces redirect=true”;
}
}
ldariobean.java

@Entity
@Table(name = "empresas")
public class Empresa implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;

@OneToMany
@JoinColumn(name = "empresa")  
private List<LDiario> ldiarios; 
@Entity
@Table(name = "LDIARIO2014")
public class LDiario implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;  

@ManyToOne  
@JoinColumn (name = "empresa") 
private Empresa empresa;
@ManagedBean(name="empresaBean")
@ViewScoped
@Component
public class EmpresaBean {

    @Autowired
    private EmpresaService empresaService;
    private Empresa empresa;
    private Empresa selectedEmpresa;


    public EmpresaService getEmpresaService() {
        return empresaService;
    }

    public Empresa getSelectedEmpresa() {
        return selectedEmpresa;
    }

    public void setSelectedEmpresa(Empresa selectedEmpresa) {
        this.selectedEmpresa = selectedEmpresa;
    }

    public void setEmpresaService(EmpresaService empresaService) {
        this.empresaService = empresaService;
    }

    public EmpresaBean(){
    }

    public List<Empresa> getEmpresaList(){

        return empresaService.getAll();
    }

    public Empresa getEmpresa() {
        return empresa;
    }
    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }  

    public String View() {

        return "/pages/menu/menuPrincipal?faces-redirect=true";
    }
}
@ManagedBean(name="ldiarioBean")
@ViewScoped
@Component
public class LDiarioBean {

    private LDiario ldiario;
    @Autowired
    private LDiarioService ldiarioservice;

    private LDiario selectedLdiario;

    public LDiarioService getLdiarioservice() {
        return ldiarioservice;
    }
    public void setLDiarioservice(LDiarioService ldiarioservice) {
        this.ldiarioservice = ldiarioservice;
    }

    public LDiarioBean(){

    }
    public LDiario getLdiario() {
        return ldiario;
    }
    public void setLdiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
    public LDiario getSelectedLdiario() {
        return selectedLdiario;
    }
    public void setSelectedLdiario(LDiario selectedLdiario) {
        this.selectedLdiario = selectedLdiario;
    }    

    public List<LDiario> getLDiarioList(){  
        return ldiarioservice.getAll();
    }

    public LDiario getLDiario() {
        return ldiario;
    }
    public void setLDiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
}
@Transactional
@Repository
public class LDiarioDaoImpl implements LDiarioDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<LDiario> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from LDiario").list();
    }
}
@Transactional
@Repository
public class EmpresaDaoImpl implements EmpresaDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<Empresa> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from Empresa").list();
    }
}
@ManagedBean(name=“ldariobean”)
@视域
@组成部分
公共类bean{
私人学院;
@自动连线
私人图书馆服务;
私人学院选择学院;
公共LDiarioService getLdiarioservice(){
退货服务;
}
公共void setLDiarioservice(LDiarioService LDiarioService){
this.ldiarioservice=ldiarioservice;
}
公共bean(){
}
公共图书馆{
返回ldiario;
}
公共无效设置(LDiario LDiario){
this.ldario=ldario;
} 
public LDiario getSelectedLdiario(){
返回所选的ldiario;
}
公共无效设置selectedLdiario(LDiario selectedLdiario){
this.selectedLdiario=selectedLdiario;
}    
公共列表getLDiarioList(){
返回ldiarioservice.getAll();
}
公共图书馆{
返回ldiario;
}
公共无效设置(LDiario LDiario){
this.ldario=ldario;
} 
}
ldiariodaimpl.java

@Entity
@Table(name = "empresas")
public class Empresa implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;

@OneToMany
@JoinColumn(name = "empresa")  
private List<LDiario> ldiarios; 
@Entity
@Table(name = "LDIARIO2014")
public class LDiario implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;  

@ManyToOne  
@JoinColumn (name = "empresa") 
private Empresa empresa;
@ManagedBean(name="empresaBean")
@ViewScoped
@Component
public class EmpresaBean {

    @Autowired
    private EmpresaService empresaService;
    private Empresa empresa;
    private Empresa selectedEmpresa;


    public EmpresaService getEmpresaService() {
        return empresaService;
    }

    public Empresa getSelectedEmpresa() {
        return selectedEmpresa;
    }

    public void setSelectedEmpresa(Empresa selectedEmpresa) {
        this.selectedEmpresa = selectedEmpresa;
    }

    public void setEmpresaService(EmpresaService empresaService) {
        this.empresaService = empresaService;
    }

    public EmpresaBean(){
    }

    public List<Empresa> getEmpresaList(){

        return empresaService.getAll();
    }

    public Empresa getEmpresa() {
        return empresa;
    }
    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }  

    public String View() {

        return "/pages/menu/menuPrincipal?faces-redirect=true";
    }
}
@ManagedBean(name="ldiarioBean")
@ViewScoped
@Component
public class LDiarioBean {

    private LDiario ldiario;
    @Autowired
    private LDiarioService ldiarioservice;

    private LDiario selectedLdiario;

    public LDiarioService getLdiarioservice() {
        return ldiarioservice;
    }
    public void setLDiarioservice(LDiarioService ldiarioservice) {
        this.ldiarioservice = ldiarioservice;
    }

    public LDiarioBean(){

    }
    public LDiario getLdiario() {
        return ldiario;
    }
    public void setLdiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
    public LDiario getSelectedLdiario() {
        return selectedLdiario;
    }
    public void setSelectedLdiario(LDiario selectedLdiario) {
        this.selectedLdiario = selectedLdiario;
    }    

    public List<LDiario> getLDiarioList(){  
        return ldiarioservice.getAll();
    }

    public LDiario getLDiario() {
        return ldiario;
    }
    public void setLDiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
}
@Transactional
@Repository
public class LDiarioDaoImpl implements LDiarioDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<LDiario> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from LDiario").list();
    }
}
@Transactional
@Repository
public class EmpresaDaoImpl implements EmpresaDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<Empresa> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from Empresa").list();
    }
}
@Transactional
@存储库
公共类ldariodaoimpl实现了ldariodao{
@自动连线
私人会话工厂会话工厂;
@凌驾
公共列表findAll(){
返回sessionFactory.getCurrentSession().createQuery(“来自LDiario”).list();
}
}
empresadaimpl.java

@Entity
@Table(name = "empresas")
public class Empresa implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;

@OneToMany
@JoinColumn(name = "empresa")  
private List<LDiario> ldiarios; 
@Entity
@Table(name = "LDIARIO2014")
public class LDiario implements Serializable{

@Id 
@Column(name = "CLAVE")
@GeneratedValue private Integer CLAVE;  

@ManyToOne  
@JoinColumn (name = "empresa") 
private Empresa empresa;
@ManagedBean(name="empresaBean")
@ViewScoped
@Component
public class EmpresaBean {

    @Autowired
    private EmpresaService empresaService;
    private Empresa empresa;
    private Empresa selectedEmpresa;


    public EmpresaService getEmpresaService() {
        return empresaService;
    }

    public Empresa getSelectedEmpresa() {
        return selectedEmpresa;
    }

    public void setSelectedEmpresa(Empresa selectedEmpresa) {
        this.selectedEmpresa = selectedEmpresa;
    }

    public void setEmpresaService(EmpresaService empresaService) {
        this.empresaService = empresaService;
    }

    public EmpresaBean(){
    }

    public List<Empresa> getEmpresaList(){

        return empresaService.getAll();
    }

    public Empresa getEmpresa() {
        return empresa;
    }
    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }  

    public String View() {

        return "/pages/menu/menuPrincipal?faces-redirect=true";
    }
}
@ManagedBean(name="ldiarioBean")
@ViewScoped
@Component
public class LDiarioBean {

    private LDiario ldiario;
    @Autowired
    private LDiarioService ldiarioservice;

    private LDiario selectedLdiario;

    public LDiarioService getLdiarioservice() {
        return ldiarioservice;
    }
    public void setLDiarioservice(LDiarioService ldiarioservice) {
        this.ldiarioservice = ldiarioservice;
    }

    public LDiarioBean(){

    }
    public LDiario getLdiario() {
        return ldiario;
    }
    public void setLdiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
    public LDiario getSelectedLdiario() {
        return selectedLdiario;
    }
    public void setSelectedLdiario(LDiario selectedLdiario) {
        this.selectedLdiario = selectedLdiario;
    }    

    public List<LDiario> getLDiarioList(){  
        return ldiarioservice.getAll();
    }

    public LDiario getLDiario() {
        return ldiario;
    }
    public void setLDiario(LDiario ldiario) {
        this.ldiario = ldiario;
    } 
}
@Transactional
@Repository
public class LDiarioDaoImpl implements LDiarioDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<LDiario> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from LDiario").list();
    }
}
@Transactional
@Repository
public class EmpresaDaoImpl implements EmpresaDao{

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<Empresa> findAll() {
        return sessionFactory.getCurrentSession().createQuery("from Empresa").list();
    }
}
@Transactional
@存储库
公共类empresadaimpl实现EmpresaDao{
@自动连线
私人会话工厂会话工厂;
@凌驾
公共列表findAll(){
返回sessionFactory.getCurrentSession().createQuery(“来自Empresa”).list();
}
}
index.xhtml

   <h:head>
      <title>Lista con Java Server Faces</title>
   </h:head>
   <h:body> 

      <h:form id="form">
    <p:dataTable id="radioDT"  var="emp" value="#{empresaBean.getEmpresaList()}"  
                selection="#{empresaBean.selectedEmpresa}" rowKey="#{emp.CLAVE}">



    <f:facet name="header">
            Lista de Empresas
         </f:facet>
         <p:column selectionMode="single" style="width:16px;text-align:center"/>         
      <p:column headerText="Id">
       <h:outputText value="#{emp.CLAVE}" />
       </p:column>

         <p:column headerText="Nombre Empresa">
       <h:outputText value="#{emp.NOMBRE}" />
       </p:column>

         <p:column headerText="AÑO">
       <h:outputText value="#{emp.EJERCICIO}" />
       </p:column>

       <!-- "#{empresaBean.selectedEmpresa}" -->
<f:facet name="footer">

    <p:commandButton action="#{empresaBean.View}" value="Seleccionar" title="Ir Menu" rowKey="#{emp.CLAVE}" >
 <f:setPropertyActionListener target="#{empresaBean.empresa}" value="#{empresaBean.selectedEmpresa}" />
</p:commandButton>

Lista con Java服务器面
埃姆普雷斯酒店
menuPrincipal.xhtml(此页面中的错误)


利斯塔多迪亚里奥酒店

empresaBean.empresa.ldiarios行吗?你会写什么?Thx.

您还没有听过。您在错误的假设中混为一谈,认为JSF和Spring框架相互理解。除非您让Spring或JSF管理您的bean,否则您将无法成功——不是两者都有——不,它们彼此不理解。我以前已经遇到过这种情况。好的,谢谢,我必须删除@Component,但是我必须删除其他注释?或者其他的是正确的?非常感谢,没有。您的代码意味着您在任何地方都在使用Spring(或者至少您对Spring感兴趣)。如果是这样,那么您应该让Spring管理您的bean,并删除JSF相关的注释,如
@ManagedBean
(而不是
@Component
,您实际上应该使用它的专门化
@Controller
)。Spring不支持开箱即用的视图范围。您需要创建自己的自定义视图范围。看见有些版本可能支持它,但我还没有看到它。有些人说,在创建了一定数量的视图范围bean之后,以这种方式实现视图范围会破坏某些功能。我不确定这个说法,但在我的应用程序(使用Spring 4.0 GA、Spring Security 3.2.0 GA、JSF 2.2.8-02、Hibernate 4.3.7 final)中,除了其他DAO/DTO和实用程序类之外,还有200多个bean由Spring管理,其中许多都是以这种方式实现的视图范围。到目前为止,应用程序在任何地方都运行良好。好的,唯一的问题是,我可以在没有jsf的情况下使用primefaces吗?