我想在JBoss7.1中使用Hibernate4.3的多租户特性。
通过在jboss-deployment-structure中添加以下行,我设法将其包含在我的war中
<exclusions>
<module name="org.hibernate" />
</exclusions>
并在pom.xml中添加对hibernate核心和实体管理器的依赖项
这使得Hibernate4.3可以加载,但不幸的是,我出现了一个错误
java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
这是因为在Hibernate4.3使用JPA2.1时加载了JPA2.0
<property name="jboss.as.jpa.managed" value="false" />
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>${spring-data.version}</version>
<exclusions>
<exclusion>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
</exclusion>
</exclusions>
</dependency>
从JBoss standalone.xml中完全删除了JPA子系统,但没有成功。
唯一起作用的是将整个javaee.api排除在jboss-deployment-structure中,正如另一个线程所建议的那样
<exclusions>
<module name="javax.persistence.api"/>
<module name="javaee.api"/>
</exclusions>
但这会给我的其余代码带来很多问题。
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
<module name="org.apache.log4j" />
<module name="javax.persistence.api" />
<module name="org.hibernate" />
</exclusions>
<dependencies>
<module name="org.jboss.ironjacamar.jdbcadapters" />
<module name="org.hornetq" />
<module name="org.hornetq.ra" />
<module name="org.jboss.ejb3" />
<module name="org.jboss.ejb-client" />
</dependencies>
</deployment>
</jboss-deployment-structure>
正如你所看到的,我已经尝试了很多没有运气的事情,所以如果任何人有另一个想法,它是最欢迎的。
我将把这个问题分成两个较小的问题:
1)确保您没有过渡依赖于JPA2.0
为此,您可以使用依赖关系图可视化工具(NetBeans内置了一个,或者您可以使用maven依赖关系树插件)。另一种方法是在部署到JBoss之前浏览工件中包含的库。
备份as7/modules/org/hibernate
的当前内容,以防出错
删除旧的JAR并将新的Hibernate JAR复制到as7/modules/org/Hibernate/main
+as7/module/org/Hibernate/envers/main
中
更新as7/module/org/hibernate/main/module.xml
+as7/module/org/hibernate/envers/main/module.xml
以命名您在其中复制的JAR
更新的as7/module/org/hibernate/main/module.xml
如下所示(注意,相关性不会改变):
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.hibernate">
<resources>
<resource-root path="hibernate-core-4.3.5.Final.jar"/>
<resource-root path="hibernate-commons-annotations-4.0.4.Final.jar"/>
<resource-root path="hibernate-entitymanager-4.3.5.Final.jar"/>
<resource-root path="hibernate-infinispan-4.3.5.Final.jar"/>
</resources>
<dependencies>
.
.
</dependencies>
</module>
问题内容: 我正在使用Entity Framework Code First开发WCF RESTful Web服务。 我的桌子上有很多列。我这样做是为了获得特定用户: 在此表上,有一个密码列,我不想返回此列。 如何从该选择中排除密码列? 问题答案: 在select语句中指定所需的每一列:
问题内容: 我有一个要从特定对象中排除的组件: 否则,它似乎与我项目中的其他班级发生冲突。我不完全理解碰撞,但是如果注释掉注释,事情就会像我希望的那样工作。但是其他依赖于此库的项目希望此类由Spring管理,因此我只想在我的项目中跳过它。 我尝试使用: 但它似乎不起作用。如果尝试使用,则会收到一个奇怪的错误,提示你无法加载一些看似随机的类: 原因:java.io.FileNotFoundExcep
谢谢
我想从特定中的中排除一个组件: 否则,它似乎会与我项目中的其他类发生冲突。我并不完全理解这种冲突,但是如果我注释掉< code>@Component注释,事情就会如我所愿地运行。但是其他依赖这个库的项目期望这个类由Spring管理,所以我只想在我的项目中跳过它。 我尝试使用< code>@ComponentScan。过滤器: 但是它似乎不起作用。如果我尝试使用,我会收到一个奇怪的错误,因为无法加载
我有两个endpoint使用相同的模型类(Cars)。对于search chBigListendpoint,我想检索所有汽车字段,而对于search chCarSmallListendpoint,我想只检索3个字段。我尝试使用注释来做到这一点,但它对我不起作用。有人知道如何做到这一点吗?
Lombok项目的类注释,ToString,用于在其注释的类内自动生成一个ToString()方法。 对于这个类: 调用生成的toString()方法将生成以下输出: 注释的可选元素可用于包含或排除特定字段,但我想知道的是... 可能类似于: