session.createQuery("Select attribute from GoodsSection tgs " +
"join gs.ascendants ags join ags.attributes attribute " +
"where attribute.outerId = :outerId and tgs = :section ")
.setString("outerId", pOuterId)
.setEntity("section", section)
.setMaxResults(1)
.uniqueResult();
Run Code Online (Sandbox Code Playgroud)
看起来很好,但结果是
java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.IdentNode
\-[IDENT] IdentNode: 'attribute' {originalText=attribute}
at org.hibernate.hql.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:145)
at org.hibernate.hql.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:705)
at org.hibernate.hql.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:529)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:645)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
Run Code Online (Sandbox Code Playgroud)
为什么?怎么了?
如何在C++中设置环境变量?
谢谢
我的基于servlet的Web应用程序有时无法在重新部署时关闭Log4j日志文件,泄漏到文件描述符泄漏,偶尔会导致从"太多打开的文件"中导致servlet包含的死亡.
我有一个ContextListener,我应该把它放在contextDestroyed()中告诉log4j关闭并释放所有资源?
快速浏览javadocs,发现Hierachery类有shutdown()方法.我不知道如何实际获得当前的Hierachery,而javadoc声明这个类里面没有用户可维护的组件:)
我想在我的一个软件包中放入一些JavaScript文件,让Struts像他们一样服务 /struts/js/foo.js
Struts为'template'包中的文件执行此操作(这是jQuery插件的文件所在的位置,由struts.ui.templateDir选项保护).但是我想把这些文件放到另一个包中; 如果我重新定义,struts.ui.templateDir那么struts停止工作,因为它无法找到它的模板.
所以现在的问题是:如何判断的Struts中提供文件服务org.foo.some.package.js的/struts/js/whatever.js?
我正在尝试编写一个简单的Sinatra,但我需要动作包中的ActionView :: Helpers :: NumberHelper. http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html
问题是,我该如何安装和使用它?
irb(main):001:0> require 'action_view/helpers/number_helper'
irb(main):002:0> number_with_precision(1)
NoMethodError: undefined method `number_with_precision' for main:Object
irb(main):004:0> ActionView::Helpers::NumberHelper.number_with_precision(1)
NoMethodError: undefined method `number_with_precision' for ActionView::Helpers::NumberHelper:Module
Run Code Online (Sandbox Code Playgroud)
为什么这个简单的步骤不起作用?
而且,如果我需要所有废话:
irb(main):001:0> require 'action_pack'
irb(main):004:0> require 'action_view'
irb(main):005:0> include ActionView::Helpers::NumberHelper
irb(main):006:0> number_to_phone(12345)
NoMethodError: undefined method `starts_with?' for "12345":String
Run Code Online (Sandbox Code Playgroud)
如何理解所有这一切?为什么这个模块不起作用?为什么它不需要它需要什么?它需要什么?starts_with在哪里?
谷歌对这些问题完全保持沉默.
UPD:现在我得到以下内容
number_with_precision(1, :locale => 'fr')
TypeError: wrong argument type nil (expected Fixnum)
Run Code Online (Sandbox Code Playgroud)
在我看来,我的NumberHelper已经坏了.这不是一个好的行为.
我们这里有一个系统,它使用Java JNI来调用C库中的一个函数.在Solaris上运行的一切.
我在某处使用字符串编码有问题.用C编写的函数返回一个阿拉伯字符,但JNI方法接收带有另一个编码的字符串.我已经尝试设置$ NLS_LANG,并且vm参数以相同的方式进行编码,但没有任何效果.所以我需要能够一起调试C代码和Java JNI.
调试它的最佳方法是什么?
我正在使用带有Convention插件的Struts 2.Struts 2依赖于与Java 8不兼容的ASM 3.3.它无法发现包含lambda或方法引用的动作类.
例外:
2014-06-27 18:47:32,958 ERROR main/com.opensymphony.xwork2.util.finder.ClassFinder: Unable to read class [my.project.Action]
java.lang.ArrayIndexOutOfBoundsException: 30305
at org.objectweb.asm.ClassReader.readClass(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:717)
at com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:112)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:390)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347)
at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:268)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:489)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
Run Code Online (Sandbox Code Playgroud)
ASM 5似乎支持Java 8,但Struts与二进制兼容.
这个问题有没有解决方法?现在我正在考虑修补Struts/XWork.
我们最近开始在接口中使用java 8默认方法,看起来像Freemarker看不到它们:
${myRatings.notEmpty()}
The following has evaluated to null or missing:
==> myRatings.notEmpty
Run Code Online (Sandbox Code Playgroud)
这很遗憾,因为我们在模板中调用了一堆方法.这个问题有方法解决吗?也许一些补丁?
互联网主要讲的是getFoo()默认方法,这确实没什么意义,但我说的是常规方法调用,而不是getter.
给定FILE*,是否可以确定基础类型?也就是说,是否有一个函数可以告诉我FILE*是管道还是套接字还是普通的磁盘文件?
默认情况下,对于JSON规范中的"type":"boolean",Swagger将Boolean在模型中生成(对象,非原始,可为空)字段.有没有办法让Swagger boolean在模型中生成(原始的,不可为空)字段?
基本原理是:Spring MVC将使用null无效输入初始化这些字段,这是不可取的.最好保留默认值.
与intvs 相同的问题Integer.
注意:Swagger有自己的"原始"类型概念,它与Java原语完全无关,而不是我所寻求的.