小编ala*_*mar的帖子

这个HQL有什么问题?"没有节点的数据类型"

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)

为什么?怎么了?

java hibernate hql

46
推荐指数
1
解决办法
6万
查看次数

在C++中设置本地环境变量

如何在C++中设置环境变量?

  • 他们不需要坚持执行程序
  • 它们只需要在当前过程中可见
  • 平台独立的偏好,但对我的问题只需要在Win32/64上工作

谢谢

c c++ manpage

41
推荐指数
2
解决办法
6万
查看次数

我如何正确Log4j,关闭所有Appender,因此,关闭文件

我的基于servlet的Web应用程序有时无法在重新部署时关闭Log4j日志文件,泄漏到文件描述符泄漏,偶尔会导致从"太多打开的文件"中导致servlet包含的死亡.

我有一个ContextListener,我应该把它放在contextDestroyed()中告诉log4j关闭并释放所有资源?

快速浏览javadocs,发现Hierachery类有shutdown()方法.我不知道如何实际获得当前的Hierachery,而javadoc声明这个类里面没有用户可维护的组件:)

java resources servlets log4j

15
推荐指数
1
解决办法
2万
查看次数

使用Struts 2提供静态文件(JavaScript)

我想在我的一个软件包中放入一些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

java struts2 static-resource serving

12
推荐指数
1
解决办法
2801
查看次数

我如何要求NumberHelper并使其工作?

我正在尝试编写一个简单的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已经坏了.这不是一个好的行为.

ruby sinatra actionpack

10
推荐指数
2
解决办法
7584
查看次数

如何调试JNI/C库?

我们这里有一个系统,它使用Java JNI来调用C库中的一个函数.在Solaris上运行的一切.

我在某处使用字符串编码有问题.用C编写的函数返回一个阿拉伯字符,但JNI方法接收带有另一个编码的字符串.我已经尝试设置$ NLS_LANG,并且vm参数以相同的方式进行编码,但没有任何效果.所以我需要能够一起调试C代码和Java JNI.

调试它的最佳方法是什么?

c java debugging java-native-interface solaris

8
推荐指数
1
解决办法
6702
查看次数

使Struts 2与Java 8兼容(旧版ASM 3)

我正在使用带有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 struts2 java-8

8
推荐指数
1
解决办法
2747
查看次数

Freemarker和java8默认方法?

我们最近开始在接口中使用java 8默认方法,看起来像Freemarker看不到它们:

${myRatings.notEmpty()}

The following has evaluated to null or missing:
==> myRatings.notEmpty
Run Code Online (Sandbox Code Playgroud)

这很遗憾,因为我们在模板中调用了一堆方法.这个问题有方法解决吗?也许一些补丁?

互联网主要讲的是getFoo()默认方法,这确实没什么意义,但我说的是常规方法调用,而不是getter.

java freemarker struts2 java-8

8
推荐指数
1
解决办法
550
查看次数

在Unix中区分管道和文件

给定FILE*,是否可以确定基础类型?也就是说,是否有一个函数可以告诉我FILE*是管道还是套接字还是普通的磁盘文件?

c unix file pipe manpage

7
推荐指数
1
解决办法
1198
查看次数

使Swagger在生成的模型中使用原始int和boolean

默认情况下,对于JSON规范中的"type":"boolean",Swagger将Boolean在模型中生成(对象,非原始,可为空)字段.有没有办法让Swagger boolean在模型中生成(原始的,不可为空)字段?

基本原理是:Spring MVC将使用null无效输入初始化这些字段,这是不可取的.最好保留默认值.

intvs 相同的问题Integer.

注意:Swagger有自己的"原始"类型概念,它与Java原语完全无关,而不是我所寻求的.

java primitive spring-mvc swagger

7
推荐指数
1
解决办法
1228
查看次数