1

エンティティから作成されたデータベースを生成しようとしています。開発には Hibernate、PostgreSQL、Tomcat6、Eclipse を使用しています。

エンティティの 1 つが次のようになります。

package pass.entities;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(catalog = "pass2")
@SequenceGenerator(allocationSize=1, 
            initialValue=1, 
            sequenceName = "AL_seq", 
            name ="AL_gen")
public class AnoLectivo implements Serializable{

    private static final long serialVersionUID = -2663573189740765100L;

    @Id
    @GeneratedValue(generator="AL_gen")
    private int ent_id;

    private String id;

    /...
}

そして、これはpersistence.xmlです

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/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">
    <persistence-unit name="AnoLectivoSrv" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>pass.entities.AnoLectivo</class>
        <class>test.Test</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql:postgres"/>
            <property name="javax.persistence.jdbc.user" value="postgres"/>
            <property name="javax.persistence.jdbc.password" value="admin"/>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
        </properties>
    </persistence-unit>
</persistence>

問題は、エンティティ クラスで "@Table" 注釈に常に下線が引かれ、«Table "AnoLectivo" cannot be resolve» というエラーが表示されることです。

これまでたくさん検索してきましたが、まだ解決していません...何か考えはありますか?乾杯

4

2 に答える 2

2

選択したプラットフォームで問題が発生しました: プロジェクト プロパティ -> Java 永続性 に移動すると、選択したプラットフォームが "Generic 2.0" であることがわかりました。この更新サイトから Hibernate Tools プラグインをインストールしました: download.jboss.org/jbosstools/updates/stable 、Eclipse を再起動し、プラットフォームを Hibernate 2.x および magic! として選択しました。出来た!

于 2011-06-12T12:18:01.573 に答える
1

これは、Eclipse で使用できる Dali JPA ツールに大きく関係しています。エラー メッセージ (JPA バリデータによって生成される) は、プロジェクトの現在構成されているデータベース接続で指定されたデータベースにテーブルが存在するかどうかを確認しようとしたことを単に意味します。

適切なデータベースに接続するか、データベースでテーブルを使用できるようにすると、エラーは解消されます。

JPA バリデーターをオフにする

空のデータベース スキーマに対して JPA アプリケーションを構築する場合、これらのメッセージは、テーブルが作成されるまで解決されない可能性があります。JPA プロバイダーがテーブルの作成を担当する場合、鶏が先か卵が先かという問題が発生します。これは、次の手順を使用して JPA バリデーターをオフにすることで回避できます。

  • [設定] ダイアログ ([ウィンドウ] -> [設定]) の [検証] ペインに移動します。
  • ビルド フェーズの JPA バリデーターを無効にします。
于 2011-06-11T18:06:30.517 に答える