引用JPQL,我不清楚如何查询表格。
我想要的是,如果它存在,给定的messagId和组的@Entity Note
,但我不理解语法。
如何为以下查询指定messageId和group?
public void persist(Msg message) {
LOG.info("\t" + message);
LOG.info("isOpen?" + em.isOpen());
em.getTransaction().begin();
int id = message.getId();
Query q = em.createQuery("SELECT n "
+ "FROM Notes n WHERE n.messageId = :messageId "
+ "AND n.group = :group");
List results = q.getResultList();
em.getTransaction().commit();
for (Object o : results) {
LOG.info("object is \n\n" + o);
}
}
}
答案 0 :(得分:1)
您需要使用setParameter()在查询中设置参数。
请参阅, http://en.wikibooks.org/wiki/Java_Persistence/Querying#Parameters
答案 1 :(得分:1)
使用setParameter(String name, Object value)
q.setParameter("messageId", id).setParameter("group", group);
为了更好,请使用TypedQuery
public void persist(Msg message) {
LOG.info("\t" + message);
LOG.info("isOpen?" + em.isOpen());
em.getTransaction().begin();
int id = message.getId();
TypedQuery<Note> q = em.createQuery("SELECT n "
+ "FROM Notes n WHERE n.messageId = :messageId "
+ "AND n.group = :group", Note.class);
q.setParameter("messageId", id).setParameter("group", group);
List<Note> results = q.getResultList();
em.getTransaction().commit();
for (Note o : results) {
LOG.info("object is \n\n" + o);
}
}