2017-12-27 20 views
0

Wildfly10およびPostgres 9.6.6で動作するJava8EEアプリケーションを取得しようとしています。PostgreSQL 9.6.6およびHibernate 5.2.12.finalを使用したWildfly 10

どういうわけか私はいつも、関係が見つからないというエラーにぶつかります。

私のPostgresはlocalhostのデフォルトポートで動作しています。私はユーザーのpostgresと正しいパスワードで接続しています。データベース(hbnac)には同じ名前のスキーマがあります。

Wildflyはデータベースを使用するように設定されており、「接続のテスト」は接続が成功したことを確認しています。 pgAdminの使用4私はデータベースを参照し、スキーマとgroup_memberテーブルを参照することもできます。

JBossでは設定は以下のようになります。

Caused by: org.postgresql.util.PSQLException: ERROR: relation "group_member" does not exist 

の設定:しかし、私のアプリケーションは、次のエラーが発生し、非常に同じテーブルからレコードを選択するために失敗した

<datasource jta="false" jndi-name="java:jboss/datasources/hbnac" pool-name="hbnac" enabled="true" use-ccm="false"> 
       <connection-url>jdbc:postgresql://localhost:5432/hbnac</connection-url> 
       <driver-class>org.postgresql.Driver</driver-class> 
       <driver>postgres</driver> 
       <pool> 
        <min-pool-size>1</min-pool-size> 
        <initial-pool-size>1</initial-pool-size> 
        <max-pool-size>10</max-pool-size> 
        <flush-strategy>Gracefully</flush-strategy> 
       </pool> 
       <security> 
        <user-name>postgres</user-name> 
        <password>password</password> 
       </security> 
       <validation> 
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/> 
        <background-validation>true</background-validation> 
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/> 
       </validation> 
      </datasource> 

私のpersistence.xmlは、Wildflyで定義された接続のjndiルックアップを実行しています:

明らかに、jta-data-sourceはWildflyの作業用データソースと一致しています。ご覧のとおり、私は、起動時に同じ理由で失敗する検証と、違いがないスキーマ名で少し試しました。

エンティティitselがannotedさ:

@Entity 
@Table(name = "group_member") 
public class GroupMember extends AbstractEntity { 

public final static String FACEBOOK_NAME_FIELD = "facebookName"; 
public final static String BIRTHDAY_FIELD = "birthday"; 

@Id 
@GeneratedValue(strategy= GenerationType.IDENTITY) 
private long id; 

それはゲッター、セッター、ハッシュコードを持っているし、利用可能なすべてのフィールドのMethodeのに等しいです。

私はによって生成されたクエリはpgAdminで冬眠にコピーした場合、それはまた、完璧に動作...

左任意のアイデア?

A screenshot from the actual db in pgadmin

答えて

0

をouted!これはWildfly自体のPostgresモジュールの設定に起因していました。

私が前にいた何

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="org.postgres"> 
    <resources> 
     <resource-root path="postgresql-42.1.4.jar" /> 
    </resources> 
    <dependencies> 
     <module name="javax.api"/> 
     <module name="javax.transaction.api"/> 
     <module name="javax.servlet.api" optional="true" /> 
    </dependencies> 

およびスタンドアロンインチXML:データソース自体の

<driver name="postgres" module="org.postgres"> 
    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> 
    <datasource-class>org.postgresql.ds.PGSimpleDataSource</datasource-class> 
</driver> 

<datasource jta="false" jndi-name="java:jboss/datasources/hbnac" pool-name="hbnac" enabled="true" use-ccm="false"> 
       <connection-url>jdbc:postgresql://localhost:5432/hbnac</connection-url> 
       <driver-class>org.postgresql.Driver</driver-class> 
       <driver>postgres</driver> 
       ... 

この構成では、成功した接続が、関係が見つかりませんでしたというエラーを与えました。

次の構成に置き換えることにより、

、すべてが正常に動作している:

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="org.postgres"> 
<resources> 
    <resource-root path="postgresql-42.1.4.jar"/> 
</resources> 
<dependencies> 
    <module name="javax.api"/> 
    <module name="javax.transaction.api"/> 
    <module name="javax.servlet.api" optional="true"/> 
</dependencies> 

standalone.xmlでのドライバの場合:

module.xmlについては

<driver name="postgresql" module="org.postgres"> 
    <driver-class>org.postgresql.Driver</driver-class> 
</driver> 

最後にdb接続の場合:

<datasource jta="true" jndi-name="java:/PostgresDS" pool-name="PostgresDS" enabled="true" use-java-context="true"> 
    <connection-url>jdbc:postgresql://localhost:5432/hbnac</connection-url> 
    <driver>postgresql</driver> 
    <security> 
    ... 
0

でもテスト接続に成功、しかし、おそらく、スキーマの設定が正しく定義されていない、を示すテーブル を見つけることができませんでした。 はその後、この

<connection-url>jdbc:postgresql://localhost:5432/hbnac?currentSchema=hbnac</connection-url> 

のようなのcurrentSchemaを置くべきで、クエリを発行するために休止状態を使用する場合は、このコメントを有効にする必要があり、私は多くの試行の後にエラーを発見したコード

<!--property name="hibernate.default_schema" value="hbnac"/--> 
+0

私は(hbnacするために、データベースhbnacのSETののsearch_pathをALTER;)また、データベースレベルでの検索パスを変更し、これらの設定を試してみましたが、何も助けない... 私は本当に私はいくつかの被害者だと考えていますバグの種類... – zip4ever

関連する問題