如何在Hibernate中映射动态创建的表?

我正在开发一个Web应用程序。 我们在项目中使用Hibernate作为ORM。 实际上,我们的应用程序根据用户选择动态创建一些表。 用户可以选择表名,列名,然后他/她可以从csv文件导入数据。 所以我的问题是:如何使用Hibernate和Java对象映射这个动态创建的表?

无法为JSP加载类

exception堆栈跟踪 org.apache.jasper.JasperException: Unable to load class for JSP org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:599) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:143) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:321) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) java.lang.ClassNotFoundException: org.apache.jsp.redirect_jsp java.net.URLClassLoader$1.run(Unknown Source) java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(Unknown Source) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63) org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:597) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:143) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:321) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 我的redirect.jsp文件内容

getResourceAsStream()返回null。 属性文件未加载

我正在尝试加载属性文件。 这是我的结构 现在我正在尝试加载test.properties文件。 但是我变得无效了。 在这我是怎么做的 public class Test { String workingDir = System.getProperty(“user.dir”); System.out.println(“Current working directory : ” + workingDir); File temp = new File(workingDir + “\\” + “test.properties”); String absolutePath = temp.getAbsolutePath(); System.out.println(“File path : ” + absolutePath); Properties properties = null; try { properties = new Properties(); InputStream resourceAsStream = Test.class.getClassLoader().getResourceAsStream(absolutePath); if (resourceAsStream […]

CopyOnWriteArrayList抛出CurrentModificationException

当我遍历列表时,我偶尔会得到一个ConcurrentModificationException 。 谷歌搜索告诉我,这可能是因为我在迭代它时在另一个线程中改变该列表并且为了使这个问题消失我应该使用java.util.concurrent.CopyOnWriteArrayList …. ……除了我已经是。 显然,我正在做一些非常愚蠢的事情。 有没有人知道如何诱使CopyOnWriteArrayList抛出ConcurrentModificationException ? 如果重要,我正在使用Java 5。 编辑:由于我正在使用的mutators可能很重要,我正在以两种方式修改此列表: 在前面添加元素。 ( list.add(0, newElement); ) 使用subList让旧项目脱落。 ( list = list.subList(0, MAX_LIST_SIZE); ) 那些举起红旗吗? 如果是这样,为什么? 我的理解是,因为这些操作首先复制了这个东西,所以任何现有的迭代器都会指向未经修改的原始文件,因此不关心。 我的知识是否有漏洞? 编辑2:导致问题的确切代码仍然有点模糊,但我至少可以发布我看到的exception: java.util.ConcurrentModificationException at java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification(Unknown Source) at java.util.concurrent.CopyOnWriteArrayList$COWSubList.iterator(Unknown Source) at…. …它指向我的代码中的for-each循环实例化。 那个COWSubList似乎暗示我对subList调用是我问题的根源; 我还是想明白为什么。 编辑3: * facepalm * CopyOnWriteArrayList.subList()返回List , 而不是 CopyOnWriteArrayList 。 它返回的清单没有提供任何COWAL保护的隐含义务。 这使得使用像这样的subList()来删除一个非常不好的想法。 不确定这是否是我的罪魁祸首,但它是可疑的,无论如何都需要纠正。

hibernate与c3p0:createClob()尚未实现

在我的项目中,我开始使用c3p0和hibernate重新连接到数据库,因为hibernate不会在db失败时恢复连接。 org.hibernate hibernate-c3p0 5.2.9.Final 我正在使用hibernate版本: org.hibernate hibernate-core 5.2.9.Final postgresql驱动程序是: org.postgresql postgresql 42.1.4 c3p0配置是: properties.put(“hibernate.c3p0.preferredTestQuery”,”SELECT 1″); properties.put(“hibernate.c3p0.testConnectionOnCheckout”,”true”); properties.put(“hibernate.c3p0.acquireRetryAttempts”,”1″); properties.put(“hibernate.c3p0.acquireIncrement”,”1″); properties.put(“hibernate.c3p0.idleConnectionTestPeriod”,”60″); 但我一直收到这个错误: 18:25:32.910 [localhost-startStop-1] DEBUG cmv2.c3p0.impl.NewPooledConnection – com.mchange.v2.c3p0.impl.NewPooledConnection@755e3afe handling a throwable. java.sql.SQLFeatureNotSupportedException: Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented. at org.postgresql.Driver.notImplemented(Driver.java:669) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgConnection.createClob(PgConnection.java:1246) ~[postgresql-42.1.4.jar:42.1.4] at com.mchange.v2.c3p0.impl.NewProxyConnection.createClob(NewProxyConnection.java:1408) ~[c3p0-0.9.5.2.jar:0.9.5.2] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_121] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_121] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_121] […]

Java:时区为什么不同的时区以毫秒为单位给出相同的值

我有以下代码,我的目标是以毫秒为单位返回GMT+0时间。 但为什么我总是得到我当地的时区millisec? Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(“GMT”)); Calendar cal2 = Calendar.getInstance(); System.out.println(“Time zone id is:”+cal.getTimeZone().getID()+”;time in millisec:”+cal.getTimeInMillis()); System.out.println(“Time zone id is:”+cal2.getTimeZone().getID()+”;time in millisec:”+cal2.getTimeInMillis()); 输出是 时区ID为:GMT;时间以毫秒为单位: 1332740915154 时区ID为:Europe / Helsinki;时间以毫秒为单位: 1332740915154 为什么不同的时区以毫秒为单位给出SAME值? 我想如果它是GMT+0那么它应该是毫秒与本地时区的不同值。

在Java 8中,“特定类型的任意对象”是什么意思?

在Java 8中,有“方法参考”function。 其中一种是“引用特定类型的任意对象的实例方法” http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html#type 有人可以解释“特定类型的任意对象”在该背景下的含义吗?

什么是司机类? (JAVA)

我正在阅读Java教科书,它提到了一个叫做“驱动程序类”的东西。 它是什么,它与正常的课程有什么不同?

Java中的’import’与C / C ++中的’#include’

Java中的’import’与C / C ++中的’#include’的行为方式相同吗? 具体来说,它是否包含它正在导入的整个库,还是只包含后续代码中调用的类和方法?

如何阻止Jackson序列化多态类型的注释属性?

我有多态类型和反序列化从JSON到POJO的工作。 事实上,我遵循了这里的文档。 将POJO序列化为JSON时,我得到了一个不需要的属性,特别是逻辑类型名称。 import static org.codehaus.jackson.annotate.JsonTypeInfo.*; @JsonTypeInfo(use=Id.NAME, include=As.PROPERTY, property=”type”) @JsonSubTypes({ @JsonSubTypes.Type(value=Dog.class, name=”dog”), @JsonSubTypes.Type(value=Cat.class, name=”cat”) }) public class Animal { … } public class Dog extends Animal { … } public class Cat extends Animal { … } 当Jackson序列化为JSON时,它提供了我不想公开的类型信息。 {“type”:”dog”, … } {“type”:”cat”, … } 能以某种方式阻止这种情况吗? 我只想在反序列化时忽略type 。