Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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/xpath/2.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 无法在查询的结果子句中选择多值对象_Java_Jdo_Datanucleus - Fatal编程技术网

Java 无法在查询的结果子句中选择多值对象

Java 无法在查询的结果子句中选择多值对象,java,jdo,datanucleus,Java,Jdo,Datanucleus,为了优化,我尝试在jdo中执行以下查询 Query myQuery = pm.newQuery(MyInstance.class); myQuery.setResult("this.id,this.myField"); myQuery.setResultClass(MyResultInstance.class); myQuery.execute(); 调用execute将引发以下异常,因为myField是字节数组(byte[]myField;) 有没有办法绕过这个限制?我可以将其更改为任何类型

为了优化,我尝试在jdo中执行以下查询

Query myQuery = pm.newQuery(MyInstance.class);
myQuery.setResult("this.id,this.myField");
myQuery.setResultClass(MyResultInstance.class);
myQuery.execute();
调用execute将引发以下异常,因为myField是字节数组(
byte[]myField;

有没有办法绕过这个限制?我可以将其更改为任何类型,只要最终可以以任何方式将其序列化为哈希映射。datanucleus可以将CLOB序列化为字符串,那么为什么不支持BLOB呢

是否有一个字节数组类型未实现
AbstractContainerMapping


使用datanucleus 4.0.2版

很好,JPQL没有定义在select子句中选择多值字段的支持,这并不奇怪。发布MyInstance类,这样我们就可以看到有哪些字段,以及引发异常的真正堆栈跟踪from@NeilStockton我没有使用JPA,而且我知道ResultClass中不支持多值字段。然而,序列化对象可以像字符串(字符数组)一样被视为单值项。我想知道在结果classI中是否有检索blob对象的变通方法。我的意思是,如果我在base64中对其进行编码,例如,它会工作,但是这将是一个非常低效的变通方法=),无论是JDOQL还是JPQL,同样的注释也适用。也就是说,当数组(或集合,或映射)序列化到所属对象表的单个列中时,我看不出有什么理由不允许这样做。也许在他们的论坛上提出?谢谢,转载在他们的论坛上
javax.servlet.ServletException: javax.jdo.JDOUserException: Cannot select multi-valued objects in a result clause of a query
NestedThrowables:
org.datanucleus.exceptions.NucleusUserException: Cannot select multi-valued objects in a result clause of a query
    net.sf.ehcache.constructs.web.filter.Filter.logThrowable(Filter.java:143)
    net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:91)