Java 准备好的查询的奇怪错误不是SELECT\u LONG类型
我想问一下,我该如何对此进行查询。我想从编辑文本中检查名称,如果名称存在,作为记录的一部分,在db中,我想用这个对象的数据填充所有编辑文本。还有一个很奇怪的错误。请帮助我或给我一个如何开始的建议。我是初学者。谢谢你的回答和线索 这是我的密码:Java 准备好的查询的奇怪错误不是SELECT\u LONG类型,java,android,ormlite,Java,Android,Ormlite,我想问一下,我该如何对此进行查询。我想从编辑文本中检查名称,如果名称存在,作为记录的一部分,在db中,我想用这个对象的数据填充所有编辑文本。还有一个很奇怪的错误。请帮助我或给我一个如何开始的建议。我是初学者。谢谢你的回答和线索 这是我的密码: if(et_nazwa!=null){ long value = 0; try { PreparedQuery<Klient> query = klientD
if(et_nazwa!=null){
long value = 0;
try {
PreparedQuery<Klient> query = klientDao.queryBuilder()
.where().eq("Kli_nazwa",et_nazwa.getText().toString()).prepare();
value = klientDao.countOf(query);
} catch (java.sql.SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(value!=0){
PreparedQuery<Klient> q_adres = klientDao.queryBuilder().selectColumns("Kli_adres").where().eq("Kli_nazwa",et_nazwa.getText().toString()).prepare();
PreparedQuery<Klient> q_nip = klientDao.queryBuilder().selectColumns("Kli_nip").where().eq("Kli_nazwa",et_nazwa.getText().toString()).prepare();
et_adres.setText(q_adres.toString());
et_nip.setText(q_nip.toString());
}
} catch (java.sql.SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java.lang.IllegalArgumentException:准备好的查询不是SELECT\u LONG类型,是否调用了QueryBuilder.setCountOf(true)
因此,例外情况是试图告诉您出了什么问题。构建查询时,ORMLite不知道该查询将用于什么。因为您可以选择各种列等,或者使用聚合函数(如MAX(…)
),所以它会记录一个内部查询类型,然后在执行查询时对其进行检查
如果要使用Dao.countOf(…)
则需要在QueryBuilder
对象上添加setCountOf(true)
。Dao.countOf(…)
的文档应该更明确地说明这一事实
PreparedQuery<Klient> query = klientDao.queryBuilder().setCountOf(true)
.where().eq("Kli_nazwa",et_nazwa.getText().toString()).prepare();
顺便说一句,这是一种奇怪的模式:
et_adres.setText(((PreparedQuery)q_adres).toString());
也许你想做以下事情
String queryString = klientDao.queryBuilder()...prepareStatementString();
我希望你能看看。你真是个了不起的人!谢谢你的帮助!
et_adres.setText(((PreparedQuery)q_adres).toString());
String queryString = klientDao.queryBuilder()...prepareStatementString();