Runtime Exceptions:
---------------------------------------------------------
Exception in thread "main" javax.persistence.PersistenceException: Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Deployment of PersistenceUnit [Auftrag_1_0] failed. Close all factories for this PersistenceUnit.
Internal Exception: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.IntegrityException
Descriptor Exceptions:
---------------------------------------------------------
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [hatGeliefert] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[hatGeliefert]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Lieferant --> [DatabaseTable(auftrag_1_0.lieferant)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [telefonL] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.OneToManyMapping[telefonL]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Geschaeftspartner --> [DatabaseTable(auftrag_1_0.geschaeftspartner)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [auftraege] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[auftraege]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Kunde --> [DatabaseTable(auftrag_1_0.kunde)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [auftragspositionen] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.OneToManyMapping[auftragspositionen]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.auftrag.Auftrag --> [DatabaseTable(auftrag_1_0.auftrag)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [kommtVorIn] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[kommtVorIn]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.artikel.Artikel --> [DatabaseTable(auftrag_1_0.artikel)])
Runtime Exceptions:
---------------------------------------------------------
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.1.v20121003-ad44345): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Deployment of PersistenceUnit [Auftrag_1_0] failed. Close all factories for this PersistenceUnit.
Internal Exception: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.IntegrityException
Descriptor Exceptions:
---------------------------------------------------------
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [hatGeliefert] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[hatGeliefert]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Lieferant --> [DatabaseTable(auftrag_1_0.lieferant)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [telefonL] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.OneToManyMapping[telefonL]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Geschaeftspartner --> [DatabaseTable(auftrag_1_0.geschaeftspartner)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [auftraege] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[auftraege]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Kunde --> [DatabaseTable(auftrag_1_0.kunde)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [auftragspositionen] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.OneToManyMapping[auftragspositionen]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.auftrag.Auftrag --> [DatabaseTable(auftrag_1_0.auftrag)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [kommtVorIn] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[kommtVorIn]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.artikel.Artikel --> [DatabaseTable(auftrag_1_0.artikel)])
Runtime Exceptions:
---------------------------------------------------------
at org.eclipse.persistence.exceptions.EntityManagerSetupException.deployFailed(EntityManagerSetupException.java:229)
... 9 more
Caused by: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.IntegrityException
Descriptor Exceptions:
---------------------------------------------------------
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [hatGeliefert] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[hatGeliefert]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Lieferant --> [DatabaseTable(auftrag_1_0.lieferant)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [telefonL] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.OneToManyMapping[telefonL]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Geschaeftspartner --> [DatabaseTable(auftrag_1_0.geschaeftspartner)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [auftraege] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[auftraege]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Kunde --> [DatabaseTable(auftrag_1_0.kunde)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [auftragspositionen] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.OneToManyMapping[auftragspositionen]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.auftrag.Auftrag --> [DatabaseTable(auftrag_1_0.auftrag)])
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [kommtVorIn] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[kommtVorIn]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.artikel.Artikel --> [DatabaseTable(auftrag_1_0.artikel)])
Runtime Exceptions:
---------------------------------------------------------
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:638)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:574)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:533)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:777)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:722)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:215)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:542)
... 7 more
ich schon
Bei einer OneToOne-Referenz istkeine JoinColumn-Annotation erlaubt, das sagt doch die Fehlermeldung. Wo liegt das Problem?
package auftragsverwaltung.i.geschaeftspartner;
import auftragsverwaltung.i.Fehlermeldung;
import auftragsverwaltung.i.auftrag.*;
import auftragsverwaltung.i.artikel.*;
import javax.persistence.*;
import java.util.*;
/**
* <P>Anwendungsklasse:
* <BR>Lieferanten verwalten.
*
* @author
*
*/
@Entity
@Table (schema = "auftrag_1_0", name = "lieferant" )
public class Lieferant {
/*
* @Id als Primärschlüssel
*/
@Id @GeneratedValue (strategy = GenerationType.IDENTITY)
@Column (nullable = false, unique = true, name = "LIEFERANT_ID" )
private int id;
/**
* @super Geschaeftspartner
*/
@OneToOne (cascade = { CascadeType.ALL },fetch = FetchType.EAGER )
@JoinColumn (nullable = false)
private Geschaeftspartner gp;
/**
* <P>Lieferant verweist auf einen Bankkonto
*/
@OneToOne (mappedBy = "lieferant", cascade = { CascadeType.ALL },fetch = FetchType.EAGER )
private Bankkonto bankverbindung;
/**
* <P< Lieferant verweist auf mehrere Handelswaren
*/
@OneToMany (mappedBy = "lieferant", cascade = { CascadeType.ALL },fetch = FetchType.LAZY)
private ArrayList<Handelsware> hatGeliefert;
/**
* @return id
*/
public int getId() {
return id;
}
/**
* @param set id
*/
public void setId(int id) {
this.id = id;
}
public Lieferant (){
this.id = id;
}
/**
* Kopierkonstruktor
*/
public Lieferant( Lieferant lieferant )
{
this.id = lieferant.id;
}
public Bankkonto getBankverbindung() {
return bankverbindung;
}
public void setBankverbindung(Bankkonto bankverbindung) {
this.bankverbindung = bankverbindung;
}
public ArrayList<Handelsware> getHatGeliefert() {
if(hatGeliefert == null)
{
hatGeliefert = new ArrayList<Handelsware>();
}
return hatGeliefert;
}
public void setTelefon(ArrayList<Handelsware> hatGeliefert) {
this.hatGeliefert = hatGeliefert;
}
public void verweiskopien( Lieferant lieferant ){
copyBankkonto( lieferant.bankverbindung );
copyHandelsware( lieferant.hatGeliefert );
}
public void copyHandelsware( ArrayList<Handelsware> hatGeliefert ){
if ( this.hatGeliefert == null ){
this.hatGeliefert = new ArrayList<Handelsware>( hatGeliefert) ;
this.hatGeliefert.setLieferant( this );
this.hatGeliefert.verweiskopien( hatGeliefert );
}
}
public void copyBankkonto( Bankkonto bankkonto ){
if ( this.bankverbindung == null ){
this.bankverbindung = new Bankkonto ();
this.bankverbindung.setLieferant( this );
this.bankverbindung.verweiskopien( bankkonto );
}
}
/*
* Handelsware/Bankkonto voreingestellter verweise
*/
public void voreingestellteVerweise(){
defaultHandelsware();
defaultBankkonto();
}
public void defaultHandelsware(){
hatGeliefert = new ArrayList<Handelsware>();
}
public void defaultBankkonto(){
if(bankverbindung != null){
bankverbindung = new Bankkonto();
bankverbindung.voreingestellteVerweise();
}
}
public Geschaeftspartner getGeschaeftspartner() {
return gp;
}
public void setGeschaeftspartner(Geschaeftspartner geschaeftspartner) {
this.gp = geschaeftspartner;
}
public void set_GeschaeftspartnerLieferant (Geschaeftspartner geschaeftspartner)
{
this.gp=geschaeftspartner;
geschaeftspartner.setIstLieferant(true);
geschaeftspartner.setLieferant(this);
}
public void setBankkonto(Bankkonto bankkonto) {
this.bankverbindung = bankkonto;
}
public void validateBankverbindung( ArrayList< Fehlermeldung > fehlermeldungen )
{
if ( bankverbindung == null )
{
Fehlermeldung fehlermeldung = new Fehlermeldung(
"Bankverbindung", "kein Wert angegeben", "Wert muss eingegeben werden" );
fehlermeldungen.add( fehlermeldung );
}
}
public void identifikatorNullSetzen( ){
id = 0;
if ( gp != null )
gp.identifikatorNullSetzen( );
}
public void koppeln( ){
if ( gp != null ){
gp.setLieferant(this);
gp.koppeln( );
}
}
public void loeschen( ArrayList< Fehlermeldung > fehlermeldungen ){
EntityManagerFactory emFabrik = Persistence.createEntityManagerFactory( "Auftrag_1_0" );
EntityManager em = emFabrik.createEntityManager( );
if ( fehlermeldungen.isEmpty( ) ){
if ( gp != null )
gp.geschaeftspartnerVorhanden( fehlermeldungen );
if ( fehlermeldungen.isEmpty( ) ){
em.setFlushMode( FlushModeType.COMMIT );
try{
EntityTransaction etxn = em.getTransaction( );
etxn.begin( );
em.remove( em.merge( this ) );
etxn.commit( );
}
catch ( Exception ex ){
Fehlermeldung fehlermeldung = new Fehlermeldung("Lieferantendaten löschen","Fehler beim Zugriff auf die Datenbank", "" );
fehlermeldungen.add( fehlermeldung );
}
finally{
em.close( );
}
}
}
}
public static List< Lieferant > suchen(ArrayList< Fehlermeldung > fehlermeldungen ){
EntityManagerFactory emFabrik = Persistence.createEntityManagerFactory( "Auftrag_1_0" );
EntityManager em = emFabrik.createEntityManager( );
try{
Query q = em.createQuery( "SELECT k FROM Lieferant k" );
List< Lieferant > lieferantL = ( List< Lieferant > ) q.getResultList( );
return lieferantL;
}
catch ( Exception ex ){
Fehlermeldung fehlermeldung = new Fehlermeldung("Kundendaten suchen",
"Fehler beim Zugriff auf die Datenbank", "" );
fehlermeldungen.add( fehlermeldung );
return null;
}
finally{
em.close( );
}
}
}
package auftragsverwaltung.i.artikel;
import auftragsverwaltung.i.*;
import auftragsverwaltung.i.geschaeftspartner.Lieferant;
import javax.persistence.*;
import java.util.*;
/**
* <P>Anwendungsklasse:
* <BR>Handelsware verwalten.
*
* @author
*
*/
@Entity
@Table ( schema = "auftrag_1_0", name = "handelsware" )
public class Handelsware {
/*
* @Id als Primärschlüssel
*/
@Id @GeneratedValue (strategy = GenerationType.IDENTITY)
@Column (nullable = false, unique = true, name = "HANDELSWARE_ID" )
private int id;
/**
* @super Artikel
*/
@OneToOne ( cascade = { CascadeType.ALL },fetch = FetchType.EAGER )
@JoinColumn ( nullable = false)
private Artikel artikel;
/**
* <P>Handelsware verweist auf einen Lieferanten
*/
@ManyToOne( cascade = { CascadeType.ALL },fetch = FetchType.EAGER )
private Lieferant lieferant;
/*
* Einkaufspreis pro Einheit verwalten.
*/
@Column (nullable = false, unique = true, name = "EINKAUFSPREISPROEINHEIT" )
private Double einkaufspreisProEinheit;
/**
* @return id
*/
public int getId() {
return id;
}
/**
* @param set id
*/
public void setId(int id) {
this.id = id;
}
/**
* @param einkaufspreisProEinheit Einkaufspreis pro Einheit
*/
public Handelsware() {
einkaufspreisProEinheit();
}
public void einkaufspreisProEinheit( ){
einkaufspreisProEinheit = 0.0;
}
/**
* Kopierkonstruktor
*/
public Handelsware( Handelsware handelsware ){
this.id = handelsware.id;
this.einkaufspreisProEinheit = handelsware.einkaufspreisProEinheit;
}
public void verweiskopien( Handelsware handelsware ){
copyArtikel( handelsware.artikel );
copyLieferant( handelsware.lieferant );
}
/**
* @return auswertende Einkaufspreis pro Einheit
*/
public Double getEinkaufspreisProEinheit() {
return einkaufspreisProEinheit;
}
/**
* @param zuweisende Einkaufspreis pro Einheit
*/
public void setEinkaufspreisProEinheit(Double einkaufspreisProEinheit) {
this.einkaufspreisProEinheit = einkaufspreisProEinheit;
}
public Lieferant getLieferant()
{
return lieferant;
}
public void setLieferant(Lieferant lieferant){
this.lieferant = lieferant;
}
/*
* Lieferant/Artikel voreingestellter Verweis
*/
public void voreingestellteVerweise()
{
defaultLieferant();
defaultArtikel();
}
public void defaultLieferant()
{
if(lieferant == null){
lieferant = new Lieferant();
lieferant.voreingestellteVerweise();
}
}
public Artikel getArtikel() {
return artikel;
}
public void setArtikel(Artikel artikel) {
this.artikel = artikel;
}
public void defaultArtikel()
{
if(artikel==null){
artikel= new Artikel();
artikel.setHandelsware( this );
artikel.voreingestellteVerweise();
}
}
public void copyArtikel( Artikel artikel ){
if ( this.artikel == null ) {
this.artikel = new Artikel( artikel );
this.artikel.setHandelsware( this );
this.artikel.verweiskopien( artikel );
}
}
public void copyLieferant( Lieferant lieferant ){
if ( this.lieferant == null ) {
this.lieferant = new Lieferant( lieferant );
this.lieferant.verweiskopien( lieferant );
}
}
/*
* Ausnahme und Fehlermeldung Lieferant
*/
public void validateAuftragsLieferant( ArrayList< Fehlermeldung > fehlermeldungen )
{
if ( lieferant == null )
{
Fehlermeldung fehlermeldung = new Fehlermeldung(
"Lieferant", "kein Wert angegeben", "Wert muss eingegeben werden" );
fehlermeldungen.add( fehlermeldung );
}
}
public void validateLieferant( ArrayList< Fehlermeldung > fehlermeldungen ){
if ( lieferant == null ){
Fehlermeldung fehlermeldung = new Fehlermeldung("Lieferant", "nicht ausgewählt",
"Einen Lieferanten aus dem Datenbestand auswählen" );
fehlermeldungen.add( fehlermeldung );
}
}
public void validateEinkaufspreisProEinheit( ArrayList< Fehlermeldung > fehlermeldungen ){
if ( einkaufspreisProEinheit == null ){
Fehlermeldung fehlermeldung = new Fehlermeldung("Einkaufspreis pro Einheit", "nicht ausgewählt",
"Einen Einkaufspreis aus dem Datenbestand auswählen" );
fehlermeldungen.add( fehlermeldung );
}
}
public void loeschen( ArrayList< Fehlermeldung > fehlermeldungen ){
EntityManagerFactory emFabrik = Persistence.createEntityManagerFactory( "Auftrag_1_0" );
EntityManager em = emFabrik.createEntityManager( );
kommtInKundenVor( fehlermeldungen );
if ( fehlermeldungen.isEmpty( ) ){
em.setFlushMode( FlushModeType.COMMIT );
try{
EntityTransaction etxn = em.getTransaction( );
etxn.begin( );
em.remove( em.merge( this ) );
etxn.commit( );
}
catch ( Exception ex ){
Fehlermeldung fehlermeldung = new Fehlermeldung("Handelswaredaten löschen",
"Fehler beim Zugriff auf die Datenbank", "" );
fehlermeldungen.add( fehlermeldung );
}
finally{
em.close( );
}
}
}
public void kommtInKundenVor(ArrayList< Fehlermeldung > fehlermeldungen ){
EntityManagerFactory emFabrik = Persistence.createEntityManagerFactory( "Auftrag_1_0" );
EntityManager em = emFabrik.createEntityManager( );
try{
Query query = em.createQuery("SELECT auftrag FROM Kunde AS kunde, " +
"IN( kunde.auftraege ) auftrag " + "WHERE kunde.id = :idParam" );
query.setParameter( "idParam", id );
if ( query.getResultList( ).size( ) > 0 ){
Fehlermeldung fehlermeldung = new Fehlermeldung( "Handelsware löschen",
"Handelware kommt noch in mindestens einem Kunden vor", "" );
fehlermeldungen.add( fehlermeldung );
}
}
catch ( Exception ex ){
Fehlermeldung fehlermeldung = new Fehlermeldung(
"Handelsware löschen: Prüfung, ob Kunde noch in Aufträgen vorkommt",
"Fehler beim Zugriff auf die Datenbank", "" );
fehlermeldungen.add( fehlermeldung );
}
}
public void istHandelswareVonLieferant(ArrayList< Fehlermeldung > fehlermeldungen ){
EntityManagerFactory emFabrik = Persistence.createEntityManagerFactory( "Auftrag_1_0" );
EntityManager em = emFabrik.createEntityManager( );
try{
Query query = em.createQuery("SELECT handelsware FROM Handelsware handelsware WHERE handelsware.id = " +
":idParam" );
query.setParameter( "idParam", id );
if ( query.getResultList( ).size( ) == 0 ){
Fehlermeldung fehlermeldung = new Fehlermeldung("Handelsware: Prüfung, ob Handelsware vorhanden",
"Handelsware nicht vorhanden",
"Handelsware aus dem Bestand auswählen" );
fehlermeldungen.add( fehlermeldung );
}
}
catch ( Exception ex ){
Fehlermeldung fehlermeldung = new Fehlermeldung(
"Hndelsware: Prüfung, ob Handelsware vorhanden",
"Fehler beim Zugriff auf die Datenbank", "" );
fehlermeldungen.add( fehlermeldung );
}
finally{
em.close( );
}
}
}
Exception in thread "main" javax.persistence.PersistenceException: Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Deployment of PersistenceUnit [Auftrag_1_0] failed. Close all factories for this PersistenceUnit.
Internal Exception: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.IntegrityException
Descriptor Exceptions:
---------------------------------------------------------
Exception [EclipseLink-1] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The attribute [hatGeliefert] is not declared as type ValueHolderInterface, but its mapping uses indirection.
Mapping: org.eclipse.persistence.mappings.ManyToManyMapping[hatGeliefert]
Descriptor: RelationalDescriptor(auftragsverwaltung.i.geschaeftspartner.Lieferant --> [DatabaseTable(auftrag_1_0.lieferant)])
Runtime Exceptions:
---------------------------------------------------------
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:638)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:574)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:533)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:777)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:722)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:215)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:542)
... 7 more