2

我有一个与 JBoss AS 7.1.1 一起运行的客户端和服务器设置,我对我的 persistence.xml 有疑问。目前它看起来像这样:

<persistence>
    <persistence-unit name="GrahamsProj">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:jboss/datasources/WorkCenterDS</jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
        </properties>
    </persistence-unit>
</persistence>

我的服务器的 META-INF 文件夹中有 persistence.xml。我必须缺少一些属性,因为当我尝试查询我连接到的数据库时出现此错误。

11:35:07,840 ERROR [org.jboss.ejb3.invocation] (EJB default - 1) JBAS014134: 
EJB Invocation failed on component GrahamsProjBean for method public abstract 
void grahamsprojserver.session.interfaces.GrahamsProjBeanRemote.test(): javax.ejb.EJB
Exception: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: 
Schemas is not mapped [FROM Schemas s]

有什么我想念的吗?

4

2 回答 2

7

您需要在 persistence.xml 中包含所有模型类。例子:

<persistence>
    <persistence-unit name="GrahamsProj">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:jboss/datasources/WorkCenterDS</jta-data-source>
        <class>your.class.model.Example</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
        </properties>
    </persistence-unit>
</persistence>
于 2012-08-18T14:40:21.043 回答
1

您可能还需要更新 hibernate.dialect 属性。在您的示例中,您使用“org.hibernate.dialect.HSQLDialect”并且您使用 Oracle 驱动程序,例如“oracle.jdbc.OracleDriver”。如果您使用的是Oracle 数据库,则需要更新hibernate 方言,例如“org.hibernate.dialect.Oracle10gDialect”。

这是您更新的代码:

<persistence>
    <persistence-unit name="GrahamsProj">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:jboss/datasources/WorkCenterDS</jta-data-source>
        <class>your.class.model.Example</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
        </properties>
    </persistence-unit>
</persistence>
于 2013-11-13T15:58:13.637 回答