2017-06-05 69 views
-2

在这里找到的结果是我的数据库JPA:由安葬外国值

CREATE TABLE Orders (
     OrderID int NOT NULL, 
     OrderNumber int NOT NULL, 
     products_id int, 
     PRIMARY KEY (OrderID), 
     FOREIGN KEY (products_id) REFERENCES product(products_id) 
    ); 

****我产生NetBeans的实体类和它给下面的代码; ****

package Entity; 

import java.io.Serializable; 
import javax.persistence.Basic; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.NamedQueries; 
import javax.persistence.NamedQuery; 
import javax.persistence.Table; 
import javax.xml.bind.annotation.XmlRootElement; 

@Entity 
@Table(name = "orders") 
@XmlRootElement 
@NamedQueries({ 
    @NamedQuery(name = "Orders.findAll", query = "SELECT o FROM Orders o") 
    , @NamedQuery(name = "Orders.findByOrderID", query = "SELECT o FROM Orders o WHERE o.orderID = :orderID") 
    , @NamedQuery(name = "Orders.findByOrderNumber", query = "SELECT o FROM Orders o WHERE o.orderNumber = :orderNumber")}) 
public class Orders implements Serializable { 

    private static final long serialVersionUID = 1L; 
    @Id 
    @Basic(optional = false) 
    @Column(name = "OrderID") 
    private Integer orderID; 
    @Basic(optional = false) 
    @Column(name = "OrderNumber") 
    private int orderNumber; 

    public Orders() { 
    } 

    public Orders(Integer orderID) { 
     this.orderID = orderID; 
    } 

    public Orders(Integer orderID, int orderNumber) { 
     this.orderID = orderID; 
     this.orderNumber = orderNumber; 
    } 

    public Integer getOrderID() { 
     return orderID; 
    } 

    public void setOrderID(Integer orderID) { 
     this.orderID = orderID; 
    } 

    public int getOrderNumber() { 
     return orderNumber; 
    } 

    public void setOrderNumber(int orderNumber) { 
     this.orderNumber = orderNumber; 
    } 

    @Override 
    public int hashCode() { 
     int hash = 0; 
     hash += (orderID != null ? orderID.hashCode() : 0); 
     return hash; 
    } 

    @Override 
    public boolean equals(Object object) { 

     if (!(object instanceof Orders)) { 
      return false; 
     } 
     Orders other = (Orders) object; 
     if ((this.orderID == null && other.orderID != null) || (this.orderID != null && !this.orderID.equals(other.orderID))) { 
      return false; 
     } 
     return true; 
    } 

    @Override 
    public String toString() { 
     return "Entity.Orders[ orderID=" + orderID + " ]"; 
    } 

} 

****我是新的JPA,我只想通过输入“products_id”来获得“OrderNumber”是否可能?** 我想要类似这样的**

public Orders findOrderNumber(int productsId) { 
     EntityManager em = getEntityManager(); 
     Orders order= null; 
     try { 
     order= (Orders) em.createQuery("SELECT o FROM Orders o WHERE o.productsId=" + productsId).getSingleResult(); 


     } catch (NoResultException e) { 
      order= null; 
     } 

     return order; 
    } 

回答

1

试试这个代码:

// Retrieve operation using the JPA Entity Manager 
order = em.find(Orders.class,productsId); 

// get the orderNumber from an instance of Entity Orders 
int orderNumber = order.getOrderNumber();