我试图在hibernate验证4.1中覆盖默认的ResourceBundleLocator.到目前为止,它完美地运行,但其使用的唯一示例包括用于实例化ValidationFactory的Java代码.
当使用具有spring hibernate的web应用程序时,会自动配置验证(只应存在合适的hibernate验证*.jar文件并自动使用).如何在该场景中替换ResourceBundleLocator?我没有看到在任何属性或applicationContext.xml文件中规划我的自定义ResourceBundleLocator的方法.
在抛出约束违规异常后,有没有办法继续使用线程绑定的hibernate会话?我在这里给出一个简短的例子:
Parent other=service.load(33); // loads a new parent
try {
Parent p=new Parent();
p.setName("A name");
service.save(p); // a @Transactional spring service class, throws ConstraintViolationException - name should be at least 15 characters long
} catch (ConstraintViolationException e){
// i would like to handle validation errors and proceed normally
// but the session is allready closed here
}
System.out.println("Children: " + other.getChildren()); // lazy initialization exception, even when using opensessioninview
Run Code Online (Sandbox Code Playgroud)
从现在开始,hibernate会话完全没用,即使对于只读操作,比如使用OpenSessionInView模式在视图中呈现延迟集合.
我有以下域类:
class User {
static hasMany = [roles:String]
}
Run Code Online (Sandbox Code Playgroud)
我想找到每个有角色的用户ROLE_ADMIN.有没有可能用动态查找器做到这一点?user.findAllByRoles('ROLE_ADMIN')似乎给了我一个错误.
UPDATE:这是很容易查询的关联,其中类A具有类的列表B实例和两A和B的域类.但是这里的类A是一个域类,类B是一个简单的Java字符串.
查询包含其他域对象列表的关联的代码如下所示:
`User.findAll { roles { role_name=='ROLE_ADMIN' } }`
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是一种指定String值的方法,例如:
`User.findAll { roles {THIS_VALUE=='ROLE_ADMIN' }}`
Run Code Online (Sandbox Code Playgroud)
更新2:据我所知,不可能使用具有原始类型集合的标准.但是可以使用HQL:
User.findAll("from User a where :roles in elements(roles)",[roles:'ROLE_ADMIN'])
Run Code Online (Sandbox Code Playgroud)
但是,它不像查询findAll或where查询那样有用.我不能链接findAll方法,所以定义其他方法,例如:获取ROLE_ADMIN用户名像'xxx'的用户需要重写整个HQL查询.也许有可能以表达的HQL形式表达上述条件where?
我正在努力使用允许我在不使用 keytool 的情况下从 java 代码生成和签署证书的代码。此外,由于依赖性问题和不兼容性,我无法使用 bouncycastle 库。
到目前为止,我找到了使用给定参数生成 CSR 的工作代码,它似乎工作(至少openssl工具验证它确实是一个有效的 CSR)我找到的代码在这里:
http://www.journaldev.com/223/generate-a-certificate-signing-request-using-java-api
由于X500Signerjdk7 中缺少类,它可以通过简单的修改工作。
如何使用我自己的 CA 签署此 CSR(我在 openssl 生成的文本文件中有 CA 密钥和证书)
我想获得地图的最后X个条目.
如果我想获得第一个条目,它可以在groovy中相当容易地完成:map.take(10)获取一个地图的前10个条目.但是如何获得最后10个条目?没有map.reverse()方法.
我正在尝试编写Web服务测试,它需要使用客户端证书连接到Web服务.我已经设置了一个接受客户端证书的服务器,并且在使用.NET客户端应用程序时它可以正常工作.客户端证书与spring安全插件一起作为身份验证机制,因此我需要一种方法来编写可以在执行请求时使用我的自定义证书的客户端.
现在我正在尝试编写用于测试此服务的集成测试,但在执行请求时我找不到附加客户端证书的任何意思.我为groovy,ws-lite为groovy甚至cxf for java抛出了wsclient.仍然没有运气.
有什么办法可以将我自己的自定义客户端证书附加到Web服务客户端请求吗?
Java ME java.util.Calendar类没有getActualMaximum()方法:
...此类是基于JDK 1.3 Calendar类的J2ME的子集.为了减少这个类的大小,已经修剪了许多方法和变量,并简化了其他方法.
是否有可能获得月内的天数?
我有一个grails 2.2.2应用程序,并决定使用cache-ehcache插件.
问题是这个插件依赖于版本1.0.0的缓存插件,我的应用程序有缓存插件版本1.0.1(我认为它是grails 2.2.2的默认值).因此,当我尝试编译应用程序时,我总是得到相同的消息:
You currently already have a version of the plugin installed [cache-1.0.1]. Do you want to update to [cache-1.0.0]? [y,n]
Run Code Online (Sandbox Code Playgroud)
每次编译应用程序时我都要回答这个问题.我试图将项目插件依赖项更改为cache-1.0.1 in .grails/2.2.2/my_project/plugins/cache-ehcache-1.0.0/dependencies.groovy和plugin.xmlfiles.它似乎不起作用.
我知道可以从插件依赖项中排除jar,但是可以排除另一个插件吗?
我尝试将部分更改BuildConfig.groovy为:
plugins {
...
compile(':cache-ehcache:1.0.0') { excludes ":cache:1.0.0"}
}
Run Code Online (Sandbox Code Playgroud)
但它似乎仍然没有奏效.每次编译应用程序时都会得到同样的问题.
我想有以下场景:
接下来,我想验证每个提供由我的CA签名的证书的客户.
是否可以在不将每个客户端证书添加到我的tomcat密钥库的情况下实现此类方案?我只想验证客户提供的证书是否由我的CA颁发和签署.
solr 3.6是否支持加入?根据http://java.dzone.com/articles/apache-lucene-and-solr-36它可以,但当我尝试按照http://wiki.apache.org/solr/上的教程执行任何连接时加入我得到的是一个错误"未知的查询类型'加入'".是否需要以某种方式启用它,或者它只是不在3.6版本中工作?