2016-07-11 6 views
0

Hibernate 4.3.11を使用してWildfly 8.2.1の起動時にDDLをPostgreSQL 9.4データベースにエクスポートしようとしています。hbm2ddlスキーマのエクスポートが 'XYZ'が見つかりません 'XYZ'が見つかりません

DDLは、Hibernate-のmaven-pluginの(http://juplo.de/hibernate-maven-plugin/)を使用して作成した、とこのようになりました。今

<?xml version="1.0" encoding="UTF-8" ?> 
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
     version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> 
    <persistence-unit name="${persistence.unitName}" transaction-type="JTA"> 
     <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
     <class> 
    net.my-project.publisher.entity.UserEntity 
     </class> 
    <class> 
    net.my-project.publisher.entity.RoleEntity 
    </class> 
    <class> 
    net.my-project.publisher.entity.PermissionEntity 
    </class> 
    <properties> 
    <property name="hibernate.connection.driver_class" 
       value="org.postgresql.Driver"/> 
    <property name="hibernate.connection.url" 
       value="jdbc:postgresql://localhost:5432/my-project"/> 
    <property name="hibernate.connection.username" 
       value="${postgresql.login}"/> 
    <property name="hibernate.connection.password" 
       value="${postgresql.password}"/> 
    <property name="hibernate.default_schema" 
       value="${persistence.unitName}"/> 
    <property name="hibernate.dialect" 
       value="org.hibernate.dialect.PostgreSQL9Dialect"/> 
    <property name="hibernate.archive.autodetection" 
       value="class"/> 
    <property name="hibernate.hbm2ddl.auto" 
       value="create"/> 
    <property name="hibernate.max_fetch_depth" 
       value="3"/> 
    <property name="hibernate.show_sql" 
       value="true"/> 
    <property name="hibernate.format_sql" 
       value="true"/> 
    <property name="hibernate.order_updates" 
       value="true"/> 
    <property name="hibernate.generate_statistics" 
       value="true"/> 
    <property name="hibernate.use_sql_comments" 
       value="true"/> 
    <property name="hibernate.cache.use_query_cache" 
       value="true"/> 
    <property name="hibernate.cache.use_second_level_cache" 
       value="true"/> 
    <property name="hibernate.cache.provider_class" 
       value="org.hibernate.cache.EhCacheProvider"/> 
    <property name="hibernate.cache.region.factory_class" 
       value="org.hibernate.cache.EhCacheRegionFactory"/> 
    <property name="hibernate.cache.use_structured_entries" 
       value="true"/> 
    <property name="hibernate.transaction.auto_close_session" 
       value="false"/> 
    <property name="hibernate.connection.charSet" 
       value="UTF-8"/> 
    </properties> 

alter table users_permissions 
    drop constraint if exists FK_eije6ps36awul7w1e8w9x0k0j; 

[more alter table...] 

drop table permissions cascade; 

[more drop table...] 

create table permissions (
    user_ID int8 not null, 
    permission varchar(64) not null, 
    primary key (user_ID) 
); 

[more create table...] 

alter table users 
    add constraint UK_ey6y24h3nkw1cvrryc9khsl5p unique (user_name, email); 

[more alter table...] 

create sequence hibernate_sequence; 

これは私のpersistence.xmlですWildFlyサーバへの配備が行われると、Hibernateは自分のpersistence.xmlを分析し、DDLをPostgreSQLデータベースにエクスポートしようとします。しかし、失敗します。これについて

[org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-10) JBAS010417: Started Driver service with driver-name = my-project.ear_org.postgresql.Driver_9_4 
[org.jboss.weld.deployer] (MSC service thread 1-4) JBAS016008: Starting weld service for deployment my-project.ear 
[org.jboss.as.jpa] (ServerService Thread Pool -- 50) JBAS011409: Starting Persistence Unit (phase 2 of 2) Service 'my-project.ear/persistence-0.1-SNAPSHOT.jar#my-project' 
[org.hibernate.annotations.common.Version] (ServerService Thread Pool -- 50) HCANN000001: Hibernate Commons Annotations {4.0.4.Final} 
[org.hibernate.dialect.Dialect] (ServerService Thread Pool -- 50) HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL9Dialect 
[org.hibernate.tool.hbm2ddl.SchemaExport] (ServerService Thread Pool -- 50) HHH000227: Running hbm2ddl schema export 
[stdout] (ServerService Thread Pool -- 50) Hibernate: 
[stdout] (ServerService Thread Pool -- 50)  alter table my-project.users_permissions 
[stdout] (ServerService Thread Pool -- 50)   drop constraint if exists FK_eije6ps36awul7w1e8w9x0k0j 
[org.hibernate.tool.hbm2ddl.SchemaExport] (ServerService Thread Pool -- 50) HHH000389: Unsuccessful: alter table my-project.users_permissions drop constraint if exists FK_eije6ps36awul7w1e8w9x0k0j 
[org.hibernate.tool.hbm2ddl.SchemaExport] (ServerService Thread Pool -- 50) Schema "MY-SCHEMA" not found; SQL statement: 

alter table my-schema.users_permissions 
    drop constraint if exists FK_eije6ps36awul7w1e8w9x0k0j [90079-173] 

を面白いことに、私は成功しpersistence.xmlで指定した資格情報を使用して、私のPostgreSQLサーバ上にpgadmin3経由でログインすることができるということです。さらに、「my-schema」というスキーマにアクセスできます。

したがって、構成に間違いがあります。なぜHibernateはスキーマを見つけることができませんか?

ご協力いただきまして誠にありがとうございます。 ウォルター

更新:申し訳ありませんが、私のオリジナルの投稿に誤字があります!これは "my-project.users_permissions"ではなく "my-schema.users_permissions"です。

[org.hibernate.tool.hbm2ddl.SchemaExport] (ServerService Thread Pool -- 50) HHH000389: Unsuccessful: alter table my-schema.users_permissions drop constraint if exists FK_eije6ps36awul7w1e8w9x0k0j 
[org.hibernate.tool.hbm2ddl.SchemaExport] (ServerService Thread Pool -- 50) Schema "MY-SCHEMA" not found; SQL statement: 

alter table my-schema.users_permissions 
    drop constraint if exists FK_eije6ps36awul7w1e8w9x0k0j [90079-173] 

答えて

0

"my-schema"にアクセスできますが、ここでのスタックトレースは "my-project"というスキーマを示しています。私は1つが存在することを確かめるためにチェックします。

[stdout] (ServerService Thread Pool -- 50) Hibernate: 
[stdout] (ServerService Thread Pool -- 50)  alter table my-project.users_permissions 
[stdout] (ServerService Thread Pool -- 50)   drop constraint if exists FK_eije6ps36awul7w1e8w9x0k0j 
[org.hibernate.tool.hbm2ddl.SchemaExport] (ServerService Thread Pool -- 50) HHH000389: Unsuccessful: alter table my-project.users_permissions drop constraint if exists FK_eije6ps36awul7w1e8w9x0k0j 
+0

ええ、ごめんなさい。それは私の悪です。それはタイプミスです。私はそれを二重にチェックした。 Hibernateは実際にmy-schema.users_permissionsを探しています。 – Walter

関連する問題