cppHibernate对hql(查询属性)取不了数据
查询对象时没有问题的,查询属性有问题,请看代码和异常。代码如下
CppHibernateQuery query1 = session->createQuery("select id,ioFormatId,stdStatement from HciStandardStatements");
query1.setCacheable(true);
CppHibernateJCollectionObject *wh = query1.list();
CppHibernateJObject *el2 = wh->get(0);
CppHibernateJLongObject *reswhhStr = dynamic_cast<CppHibernateJLongObject *>(el2->getVal("ioFormatId"));
printf("%llu\n", reswhhStr->getVal());
报错:
Exception in thread "main" java.lang.ClassNotFoundException: java.lang.Object[]
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
terminate called after throwing an instance of 'cppHibernate::CppHibernateClassLoaderException'
what(): error occurred
怎么取数据呢? --------------------编程问答-------------------- query1.list();
这里返回的是 java.lang.Object[],
这个不太懂 c 语言怎么转 java 啦。
你可以把属性包装成对象, 让list()返回你的自己的包装对象。
参考java:
hql , "select new mypackag.TmpBean(id,ioFormatId,stdStatement) from HciStandardStatements"
List<TmpBean>=query1.list();
补充:Java , Web 开发