1

皆さん、こんにちは。JPA プロジェクトに問題があります。Fichier.java end Application.java はインターフェース「FileSystemElement.java」を実装しています これらは私のクラスです Application.java

package com.bfi.webtop.model;



import java.io.Serializable;
import java.util.*;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.Table;

/** @pdOid d477195f-149e-4336-8586-19d6a09ee2d4 */
@Entity
@Table(name="application_")
public abstract class Application implements FileSystemElement, Serializable {
//  public Application() {
//      super();
//  }



  public Application(int id_app, String url) {
super();
this.id_app = id_app;
this.url = url;
  }



      public Application() {
  super();
  // TODO Auto-generated constructor stub
   }



  private int id_app;

  private java.lang.String url;

  /**
  * @return the url
  */
  public java.lang.String getUrl() {
return url;
   }

         /**
  * @param url the url to set
     */
      public void setUrl(java.lang.String url) {
          this.url = url;
    }

    /**
      * @return the id_app
   */
 @Id
 @GeneratedValue(strategy=GenerationType.AUTO)
public int getId_app() {
return id_app;
}

/**
 * @param id_app the id_app to set
 */
public void setId_app(int id_app) {
this.id_app = id_app;
}

}

Fichier.java

package com.bfi.webtop.model;

/***********************************************************************
 * Module:  Fichier.java
 * Author:  Marwa
 * Purpose: Defines the Class Fichier
 ***********************************************************************/

import java.util.*;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;


@Entity
public abstract class Fichier implements FileSystemElement {
 private int id_fichier;

   private java.lang.String extension;
   private java.lang.Boolean supprim;
/**
 * @return the extension
 */
public java.lang.String getExtension() {
return extension;
}
/**
 * @param extension the extension to set
 */
 public void setExtension(java.lang.String extension) {
this.extension = extension;
}
/**
 * @return the supprim
 */
public java.lang.Boolean getSupprim() {
return supprim;
}
/**
 * @param supprim the supprim to set
 */
public void setSupprim(java.lang.Boolean supprim) {
this.supprim = supprim;
}
/**
* @return the id_fichier
*/
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getId_fichier() {
return id_fichier;
}
/**
 * @param id_fichier the id_fichier to set
*/
 public void setId_fichier(int id_fichier) {
this.id_fichier = id_fichier;
}

public Fichier() {
super();
}

}

FileSystemElement.java

package com.bfi.webtop.model;

import javax.annotation.Generated;
import javax.persistence.metamodel.StaticMetamodel;

@Generated(value="Dali", date="2013-01-28T10:33:26.416+0100")
@StaticMetamodel(FileSystemElement.class)
public class FileSystemElement_ {
}

他のクラスは同じ構造を持っています私がやろうとすると:jpaツール>エンティティからテーブルを生成する次の間違いがあります

スレッド「メイン」での例外 javax.persistence.PersistenceException: Exception >[EclipseLink-28019] (Eclipse Persistence Services - 2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.EntityManagerSetupException 例外の説明: PersistenceUnit のデプロイ [webtop ] 失敗した。この PersistenceUnit のすべてのファクトリを閉じます。内部例外: 例外 [EclipseLink-0] (Eclipse Persistence Services - 2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.IntegrityException

記述子の例外:

例外 [EclipseLink-34] (Eclipse Persistence Services - 2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.DescriptorException 例外の説明: このクラスはパブリック デフォルト コンストラクターを定義していないか、コンストラクターが例外を発生させました。内部例外: java.lang.InstantiationException 記述子: RelationalDescriptor(com.bfi.webtop.model.Application --> [DatabaseTable(application_)])

例外 [EclipseLink-34] (Eclipse Persistence Services - 2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.DescriptorException 例外の説明: このクラスはパブリック デフォルト コンストラクターを定義していないか、コンストラクターが例外を発生させました。内部例外: java.lang.InstantiationException 記述子: RelationalDescriptor(com.bfi.webtop.model.Fichier --> [DatabaseTable(FICHIER)])

例外 [EclipseLink-34] (Eclipse Persistence Services - 2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.DescriptorException 例外の説明: このクラスはパブリック デフォルト コンストラクターを定義していないか、コンストラクターが例外を発生させました。内部例外: java.lang.InstantiationException 記述子: RelationalDescriptor(com.bfi.webtop.model.Raccourci --> [DatabaseTable(RACCOURCI)])

ランタイム例外:

at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createDeployFailedPersistenceException(EntityManagerSetupImpl.java:616)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:596)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:186)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:278)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:304)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:282)
at org.eclipse.jpt.jpa.eclipselink.core.ddlgen.Main.perform(Main.java:85)
at org.eclipse.jpt.jpa.eclipselink.core.ddlgen.Main.execute(Main.java:76)
at org.eclipse.jpt.jpa.eclipselink.core.ddlgen.Main.main(Main.java:63)
Caused by: Exception [EclipseLink-28019] (Eclipse Persistence Services -       2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.EntityManagerSetupException

例外の説明: PersistenceUnit [webtop] の展開に失敗しました。この PersistenceUnit のすべてのファクトリを閉じます。内部例外: 例外 [EclipseLink-0] (Eclipse Persistence Services - 2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.IntegrityException

私は Eclipse Juno を使用しています。

}

4

3 に答える 3

7

クラス Fichier を抽象として定義しました。

public abstract class Fichier

アブストラクトを削除すると機能します。この場合のエラー メッセージはやや紛らわしいものです。

于 2013-09-11T17:29:14.567 に答える
0

エラーが示すように、Application クラスのデフォルト (引数なし) コンストラクターを提供する必要があります。

コンストラクターをアプリに公開したくない場合は、コンストラクターをプライベートにすることができます。

于 2013-01-28T15:21:24.050 に答える