java.lang.IllegalArgumentException:找不到命名查询:
发布时间:2020-12-15 05:17:45 所属栏目:Java 来源:网络整理
导读:我得到了以下代码 @Statelesspublic 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.setP
我得到了以下代码
@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); } } 和 @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)时,我收到此错误
虽然我在另一个项目中使用了这个命名查询,但它有效,但这里可能出现什么问题? 解决方法
使用em.createQuery(…而不是em.createNamedQuery()
如果您使用命名查询(我建议的那样),您必须将查询放在实体类的@NamedQuery注释中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |