2015-06-30 52 views
-1

嗨,我有一個Java EE應用程序,我想創建一個查詢來獲取用戶的所有門票。如何在Java EE中使用WERE命令獲取@NamedQuery查詢?

我有一票類,TicketDAO接口和TicketBean類 我有一個User類,UserDAO的接口和UserBean類

這裏是我的用戶等級:

@Entity 
    @NamedQueries({ 
     @NamedQuery(name=User.QUERY_GETALL,query="SELECT c FROM User c"), 
     @NamedQuery(name=User.QUERY_GETALLTICKETS,query="SELECT c FROM Ticket c ...????"), 
    }) 
    public class User implements Serializable{ 

     /** 
     * 
     */ 
     private static final long serialVersionUID = 1L; 

     public static final String QUERY_GETALL = "User.GetAll"; 

     public static final String QUERY_GETALLTICKETS = "User.GetAllTickets"; 
... 

這裏是我的UserBean類:

@Override 
public List<Ticket> getAllUserTickets() { 

    return em.createNamedQuery(User.QUERY_GETALLTICKETS,Ticket.class).getResultList(); 
} 

我的票證表具有列用戶名。

回答

0

將QUERY_GETALLTICKETS從User類移到Ticket類;那麼你可以寫類似:

@NamedQuery(名稱= Ticket.QUERY_GETALLTICKETS,查詢= 「選擇T門票t其中t.userName =」 + P_USER)

申報P_USER爲:

public final static String P_USER =「pUser」;

然後你就可以使用查詢是這樣的:

@覆蓋 公開名單getAllUserTickets(字符串username){

查詢查詢= em.createNamedQuery(Ticket.QUERY_GETALLTICKETS,Ticket.class ); query.setParameter(Ticket.P_USER,username);

return query.getResultList(); }

相關問題