小编Jim*_*den的帖子

Hibernate Envers:初始化Envers代理

在Hibernate Envers中,无论设置了哪种获取类型,都会延迟加载实体的所有相关集合.因此,当审计具有其他实体集合的实体(当然都是经过审计)时,该集合SetProxy最初是(在调试时可以看到).

那么,我该如何初始化该代理呢?使用Hibernate.initialize()没有效果(我怀疑是因为Hibernate和Envers使用不同的代理对象).我知道我可以通过迭代它的项目来初始化集合,但这对我来说不是一个选项,因为我在一个实体中有多个集合,更不用说维护问题了.

我需要急切地初始化它们,因为我在Hibernate会话已经关闭的时候访问该集合(将域对象转换为dtos).

我正在使用Hibernate 3.5.6.

java proxy hibernate lazy-loading hibernate-envers

25
推荐指数
1
解决办法
5074
查看次数

Spring Boot:配置CommonMultipartResolver的maxUploadSize时的ClassNotFoundException

我正在为我的Web应用程序使用Spring Boot,我正在尝试配置Spring的CommonMultipartResolver的maxUploadSize.目前,它似乎受到Spring(?)默认大小1 MB的限制.上传是通过REST接口完成的,方法签名如下所示:

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void uploadFile(@RequestParam("file") MultipartFile file, HttpServletRequest request)
Run Code Online (Sandbox Code Playgroud)

每次我尝试上传更大的文件时,都会抛出FileSizeLimitExceededException:

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
    at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl$FileItemStreamImpl$1.raiseError(FileUploadBase.java:637)
    at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.checkLimit(LimitedInputStream.java:76)
    at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.read(LimitedInputStream.java:135)
    at java.io.FilterInputStream.read(FilterInputStream.java:107)
    at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:99)
    at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:68)
    at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:296)
    at org.apache.catalina.connector.Request.parseParts(Request.java:2737)
    at org.apache.catalina.connector.Request.parseParameters(Request.java:3096)
    at org.apache.catalina.connector.Request.getParameter(Request.java:1145)
    at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:382)
    at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:140)
    at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:140)
    at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:140)
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:70)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
    at …
Run Code Online (Sandbox Code Playgroud)

java spring tomcat file-upload spring-boot

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

JUnit测试类未显示在JMeter中

我正在尝试使用JMeter 2.7运行JUnit测试.但是,在JUnit采样器的下拉列表中选择测试类时,它们不会显示.正如我发现的那样,这是因为测试类是从另一个类(AbstractJUnit4SpringContextTests是基类,其间有各种抽象类,为所有测试提供便利方法)扩展的.可以选择未从这些基类扩展的测试类.

包含测试类的JAR文件由Maven(test-jar)创建,包含所有依赖项的JAR由maven fatjar插件创建.两个jar都放在JMeter/lib/junit目录中.

我知道JMeter手册说所有测试类都必须从JUnit测试类扩展,但对JUnit3来说似乎也是如此.使用JUnit4,JMeter不需要该要求.当然,我可以重写所有测试,以便它们不必从基类扩展,但这会导致巨大的维护问题.那么,如何使用从基类扩展的JMeter执行JUnit测试?

UDPATE 2012-08-09

由于PMD的提示,我现在将依赖项逐个复制到JMeter的lib文件夹,现在GUI显示了我所有的单元测试.在此之前,我必须自己解决几个问题:

  • 将logkit-1.0.1.jar复制到该文件夹​​会阻止JMeter GUI启动.不知道为什么,没有给出错误或日志消息.JVM刚刚启动并终止.
  • 由maven依赖引起的一些版本冲突引入了旧版本的spring测试包.这导致一些测试类从具有相同名称的旧基类扩展.排除pom文件中的那些依赖项有所帮助.

我现在可以执行我的JUnit测试用例了.但是,我的类中的几个引用都带有注释@Resource.JMeter的Testrunner似乎没有注入这些引用,因为每次访问引用时,NullPointerException都会抛出a,如JMeter日志中所示.那么,我如何让JMeter注入这些依赖项,是否可能?

junit spring jmeter

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

根据列值创建多列约束

我正在尝试在oracle数据库上创建一个约束,该约束说明如下:

如果column1 == someValue那么所有条目的组合column2column3必须是唯一的column1 == someValue

我熟悉unique和check约束的概念,并且我尝试用这些结构表达约束.但是,我似乎找不到包含条件的方法.这就是为什么我想知道它是否可能.

我想要创建约束的表是由Hibernate映射以下类层次结构创建的(为简洁起见,大多数属性都被省略):

class MyClass {
     String name;
     MyClass parent;
}

class MySubClass extends MyClass {
     String businessValue;
}
Run Code Online (Sandbox Code Playgroud)

使用单个表策略映射类,并为每种类型使用不同的鉴别器值.客户要求对于MySubClass名称和父组合的所有实例必须是唯一的(column1将是鉴别器值).通过表约束在父类上强制执行这样的约束会很容易.但是,该约束必须仅适用于MySubClass.

在使用Hibernate Validator等框架将数据输入数据库之前,可以验证数据.但由于验证无论如何都需要数据库访问,因此数据库约束似乎是更节省性能的方法.

oracle hibernate constraints unique-constraint

4
推荐指数
1
解决办法
516
查看次数

批量通过JNDI检索操作(内部)LDAP属性

InitialLdapContext如果知道专有名称,则JNDI 类允许我在一行中检索LDAP条目的属性:

Attributes attributes = ctx.getAttributes(entryDN);
Run Code Online (Sandbox Code Playgroud)

但是,这不包括操作属性,例如entryCSN,modifyTimestamp等。当然,始终可以指定要通过字符串数组获取的属性:

Attributes attributes = ctx.getAttributes(entryDN, new String[] {"entryCSN"});
Run Code Online (Sandbox Code Playgroud)

但是,仅返回指定的属性。

我尝试过但不适合我的事情:

  1. 通过检索属性 ctx.search()

    我知道我可以通过搜索获取​​所有属性(请参阅此处),但是我不希望a)如果我已经知道dn则进行整个Ldap查询,并且b)麻烦地处理搜索结果集。

  2. 仅对操作属性进行第二次查询

    当然,我只能执行第二个查询,但是我想保存额外的行程并将第二个属性添加到第一个属性中,如下所示:

    Attributes attributes = ctx.getAttributes(entryDN);
    attributes.put(ctx.getAttributes(entryDN, new String[] {"entryCSN"}).get("entryCSN"));
    
    Run Code Online (Sandbox Code Playgroud)

    导致NoSuchElementException。堆栈跟踪:

    Exception thrown: java.util.NoSuchElementException: Vector Enumeration
    at java.util.Vector$1.nextElement(Vector.java:352)
    at javax.naming.directory.BasicAttribute$ValuesEnumImpl.nextElement(BasicAttribute.java:537)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 列出字符串数组中的所有属性

    由于返回的Ldap条目可以是不同的对象类,因此具有不同的属性,因此我认为没有实际的方法。

有谁知道如何一次获得正常属性和操作属性?

java attributes jndi ldap

0
推荐指数
1
解决办法
1740
查看次数