Java中的Hibernate选择查询
我正在尝试使用Jackson/Hibernate/SQL/Java来执行select 以下是我正在尝试的:Java中的Hibernate选择查询,java,sql,spring,string,hibernate,Java,Sql,Spring,String,Hibernate,我正在尝试使用Jackson/Hibernate/SQL/Java来执行select 以下是我正在尝试的: Transaction tx = null; List<Note> list = null; try { tx = dbSession.beginTransaction(); Query query = dbSession.createQuery("select Note from notes where name= :nam
Transaction tx = null;
List<Note> list = null;
try {
tx = dbSession.beginTransaction();
Query query = dbSession.createQuery("select Note from notes where name= :nameQ and university= :universityQ " +
"and professor= :professorQ");
query.setParameter("nameQ", "ONE");
query.setParameter("universityQ", "TWO");
list = query.list();
tx.commit();
return new FileInfo(Integer.toString(list.size()), fileName);
}
你能帮帮我吗?我注意到有两件事:
Note
类中定义Note
列。但是,你在质疑它
"select Note from notes
"from notes
:professorQ
"and professor= :professorQ");
看看你的问题。您可以使用3个不同的参数
nameQ
、universityQ
和professorQ
,但是您只设置了其中的2个。尝试添加以下行以设置缺少的参数并避免NullPointerException
query.setParameter("professorQ", "THREE");
此外,您选择了不正确的注释。正确的HQL查询是:
from notes where name= :nameQ and university= :universityQ and professor= :professorQ"
这有助于您获得包含所有列的整行。您是否故意不设置“professorQ”参数?@khriskooper哇,不知道我怎么会错过这一点。。我会给你回复的一般语法是“从注释n中选择n,其中…”我如何查询注释对象?我知道它不是一列,但我想要对象本身?看看我更新的解决方案
Note
class定义所有列,这意味着您需要选择所有列,所以下一步应该是List List=query.List()代码>?如果您在前面提到的行中得到null指针,则表示查询为null。否则,请指出获得异常的确切行。是否应该没有“选择”或任何内容?否。SQL和HQL之间存在差异。
from notes where name= :nameQ and university= :universityQ and professor= :professorQ"