我得到了下面的代碼:BondecomandeDAO.javajava.lang.IllegalArgumentException異常:未找到命名查詢:
@Stateless
public class BondecomandeDAO {
@PersistenceContext
private EntityManager em;
public Bondecommande findBCbyid(int id)
{
Query q =em.createNamedQuery("select bc from Bondecommande bc where bc.idbc = :idbc");
q.setParameter("idbc", id);
return (Bondecommande) q.getResultList().get(0);
}
}
而且Bondecommande.java類
@Entity
@Table(name="bondecommande")
public class Bondecommande implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="idbc")
private int idbc;
@Column(name="devise")
private String devise;
@Column(name="modepaiement")
private String modepaiement;
@Column(name="modelivraison")
private String modelivraison;
@Column(name="delaipaiement")
private int delaipaiement;
////other attributes , getters and setters
}
當我嘗試運行功能「 findBCbyid(int id)「我得到這個錯誤
java.lang.IllegalArgumentException:命名的查詢未找到:從bdedecmande bc選擇bc其中bc。 IDBC =:IDBC
雖然我在另一個項目中使用了這個命名查詢,但它的工作原理是什麼?提前致謝!