大家好,我的JPA项目有问题。Fichier.java end Application.java实现了一个接口"FileSystemElement.java“--它们是my类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 tooles>从实体生成表,我有以下错误
线程"main“中的异常javax.persistence.PersistenceException: javax.persistence.PersistenceException >EclipseLink-28019:EclipseLink-28019异常描述: PersistenceUnit webtop的部署失败。关闭此PersistenceUnit的所有工厂。内部异常:异常EclipseLink-0:org.eclipse.persistence.exceptions.IntegrityException 描述符异常:
org.eclipse.persistence.exceptions.DescriptorException异常描述:该类不定义公共默认构造函数,也不定义引发异常的构造函数。内部异常: RelationalDescriptor(com.bfi.webtop.model.Application -> DatabaseTable(application_))
org.eclipse.persistence.exceptions.DescriptorException异常描述:该类不定义公共默认构造函数,也不定义引发异常的构造函数。内部异常: RelationalDescriptor(com.bfi.webtop.model.Fichier -> DatabaseTable(FICHIER))
org.eclipse.persistence.exceptions.DescriptorException异常描述:该类不定义公共默认构造函数,也不定义引发异常的构造函数。内部异常: 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网页的部署失败。关闭此PersistenceUnit的所有工厂。内部异常:异常EclipseLink-0:org.eclipse.persistence.exceptions.IntegrityException
我在用Eclipse,有什么帮助吗?
}
发布于 2013-09-11 17:29:14
您已经将类虚构者定义为抽象类:
public abstract class Fichier去掉抽象,它就能工作了。本例中的错误消息有点令人困惑。
发布于 2013-01-28 15:21:24
由于错误状态,您需要为应用程序类提供默认(无参数)构造函数。
如果不想将构造函数公开给应用程序,则构造函数可以是私有的。
发布于 2019-07-19 14:25:59
考虑在类中创建无arg构造函数,然后清理项目并尝试。我也有同样的问题,我用lombok修复了它
https://stackoverflow.com/questions/14562356
复制相似问题