Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 准备好的查询的奇怪错误不是SELECT\u LONG类型_Java_Android_Ormlite - Fatal编程技术网

Java 准备好的查询的奇怪错误不是SELECT\u LONG类型

Java 准备好的查询的奇怪错误不是SELECT\u LONG类型,java,android,ormlite,Java,Android,Ormlite,我想问一下,我该如何对此进行查询。我想从编辑文本中检查名称,如果名称存在,作为记录的一部分,在db中,我想用这个对象的数据填充所有编辑文本。还有一个很奇怪的错误。请帮助我或给我一个如何开始的建议。我是初学者。谢谢你的回答和线索 这是我的密码: if(et_nazwa!=null){ long value = 0; try { PreparedQuery<Klient> query = klientD

我想问一下,我该如何对此进行查询。我想从编辑文本中检查名称,如果名称存在,作为记录的一部分,在db中,我想用这个对象的数据填充所有编辑文本。还有一个很奇怪的错误。请帮助我或给我一个如何开始的建议。我是初学者。谢谢你的回答和线索

这是我的密码:

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();