在Hibernate Envers中,无论设置了哪种获取类型,都会延迟加载实体的所有相关集合.因此,当审计具有其他实体集合的实体(当然都是经过审计)时,该集合SetProxy最初是(在调试时可以看到).
那么,我该如何初始化该代理呢?使用Hibernate.initialize()没有效果(我怀疑是因为Hibernate和Envers使用不同的代理对象).我知道我可以通过迭代它的项目来初始化集合,但这对我来说不是一个选项,因为我在一个实体中有多个集合,更不用说维护问题了.
我需要急切地初始化它们,因为我在Hibernate会话已经关闭的时候访问该集合(将域对象转换为dtos).
我正在使用Hibernate 3.5.6.
我正在为我的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) 我正在尝试使用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显示了我所有的单元测试.在此之前,我必须自己解决几个问题:
我现在可以执行我的JUnit测试用例了.但是,我的类中的几个引用都带有注释@Resource.JMeter的Testrunner似乎没有注入这些引用,因为每次访问引用时,NullPointerException都会抛出a,如JMeter日志中所示.那么,我如何让JMeter注入这些依赖项,是否可能?
我正在尝试在oracle数据库上创建一个约束,该约束说明如下:
如果column1 == someValue那么所有条目的组合column2和column3必须是唯一的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等框架将数据输入数据库之前,可以验证数据.但由于验证无论如何都需要数据库访问,因此数据库约束似乎是更节省性能的方法.
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)
但是,仅返回指定的属性。
我尝试过但不适合我的事情:
通过检索属性 ctx.search()
我知道我可以通过搜索获取所有属性(请参阅此处),但是我不希望a)如果我已经知道dn则进行整个Ldap查询,并且b)麻烦地处理搜索结果集。
仅对操作属性进行第二次查询
当然,我只能执行第二个查询,但是我想保存额外的行程并将第二个属性添加到第一个属性中,如下所示:
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)列出字符串数组中的所有属性
由于返回的Ldap条目可以是不同的对象类,因此具有不同的属性,因此我认为没有实际的方法。
有谁知道如何一次获得正常属性和操作属性?
java ×3
hibernate ×2
spring ×2
attributes ×1
constraints ×1
file-upload ×1
jmeter ×1
jndi ×1
junit ×1
lazy-loading ×1
ldap ×1
oracle ×1
proxy ×1
spring-boot ×1
tomcat ×1