2017-07-02 75 views
-1

我需要帮助。 我想要得到的是如何在DB中找到对象名称,并且还能够编辑并保存对象按名称查找对象,使用JPA编辑对象

业务逻辑学

更新员工

public void edit(Long id, Customer editCustomer) { 
    try { 
     entityTransaction = em.getTransaction(); 
     em.getTransaction().begin(); 
     em.merge(editCustomer); 
     Customer customer = em.find(Customer.class, id); 
     customer.setId(id); 
     customer.setFirstName(editCustomer.getFirstName()); 
     customer.setLastName(editCustomer.getLastName()); 
     customer.setAddress(editCustomer.getAddress()); 
     customer.setId(editCustomer.getId()); 
     em.getTransaction().commit(); 
    } catch (Exception e) { 
     if (em.isOpen()) 
      em.getTransaction().rollback(); 
     e.printStackTrace(); 
    } 
} 

FindByName

公众客户getCustomerByName(字符串的firstName){

TypedQuery查询= em.createQuery(“选择C FROM Customer c WHERE

c.firstName =:firstName“,Customer.class);

return query.setParameter(“firstName”,firstName).getSingleResult();

}

JSF ManagedBean

公共字符串findByName(){

BookstoreManager.getInstance().getCustomerByName(firstName); 

    System.out.println("Hello " + customer.getFirstName()); 

    return "Customer"; 

}

**Result** 

2017-07-02T16:43:13.927 + 0200 |信息:你好null

XHTML

回答

0
**JSF ManagedBean** 

     public String findByName(){ 
       Customer customer= 
       BookstoreManager.getInstance().getCustomerByName(firstName); 
       System.out.println("Hello " + customer.getFirstName()); 
       return "Customer"; 
      } 

    **Business Logik** 

     public Customer getCustomerByName(String firstName) { 
       Customer cus = null; 
       try { 
        TypedQuery<Customer> query = em.createQuery("SELECT cus FROM Customer cus WHERE cus.firstName = :firstName", 
          Customer.class); 
        cus = query.setParameter("firstName", firstName).getSingleResult(); 
       } catch (NoResultException e) { 
       } 
     System.out.println("Customer"+ ":" + cus.getFirstName()); 
       return cus; 

      } 

**xhtml code** 

<h:form id="main"> 

<h:panelGrid columns="2"> 
<h:outputText for="firstName" value="#{texts.firstName}"/> 
<p:inputText id="firstName" value="#{customerBean.firstName}"/> 
<p:commandButton value="#{texts.name}" action="#{customerBean.findByName()}" /> 

</h:panelGrid> 
</h:form>