参考this。我正在制作一个hibernate演示,我想在其中动态映射所有POJO类。我找到了上面给出的引用,并尝试仅从包映射中扫描我的类。但它给出了一些错误:
let objPost = Post.objectWithPrimaryKeyValue(Post_id)
当我添加 com.google.common_1.0.0.201004262004.jar 时,我得到了这个:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Predicate
at com.telemune.util.StringUtil.getSessionFactory(StringUtil.java:44)
at com.telemune.generator.TableDescriber.describeTable(TableDescriber.java:33)
at com.telemune.generator.PojoGenerator.main(PojoGenerator.java:169)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Predicate
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 3 more
我无法询问或评论那就是为什么我在这里特别要求@MartinAubele,@ Joathan,@ SergeyBrunov,@ ArthurRonald。请举例说明我可以使用谷歌反射来扫描我的包裹。
请注意:我不想使用Spring。所以请不要暗示这一点。在此先感谢。
一些代码示例:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;
at org.reflections.Reflections.getTypesAnnotatedWith(Reflections.java:358)
at com.telemune.util.StringUtil.getSessionFactory(StringUtil.java:46)
at com.telemune.generator.TableDescriber.describeTable(TableDescriber.java:33)
at com.telemune.generator.PojoGenerator.main(PojoGenerator.java:169)
和另一个问题是: configuration.buildSessionFactory(); 不允许我使用 的 configuration.buildSessionFactory(serviceRegistry);
答案 0 :(得分:0)
您需要使用Reflections
库的有效版本:
reflections-0.9.10.jar
有依赖关系:
com.google.guava:guava:18.0
,
org.javassist:javassist:3.18.2-GA
,
com.google.code.findbugs:annotations:2.0.1
可以在那里找到依赖项列表:http://mvnrepository.com/artifact/org.reflections/reflections/0.9.10
或者只是使用Maven
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.10</version>
</dependency>
图书馆资源和文档:reflections
我有一个项目,可以根据StackOverflow上的答案对各种库进行测试(就像链接是由你提供的):
使用Reflections
的示例:ReflectionsLibrary.java
所有图书馆的测试类:ScannersTest.java
<强>更新强>
修复
java.lang.NoSuchMethodError: org.hibernate.integrator.internal.IntegratorServiceImpl
你只需要一组有效的Hibernate库。例如,对于Hibernate 4.3.5:libs_h4