2010-09-01 65 views
-2

Mon application lève cette exception. J'utilise Java DB comme l'arrière et je me sers JPAjava.sql.SQLException: La table/vue 'SEQUENCE' existe déjà dans le schéma 'ADMIN'

Exception interne: java.sql.SQLException: Table/Voir 'PocketMoney' existe déjà dans le schéma 'APP'. Code d'erreur: 30000 Appel: CREATE TABLE APP.POCKETMONEY (ID INTEGER NOT NULL, DATE DateofSpending, DESCRIPTION VARCHAR (255), MONTANT ENTIER, PRINCIPAL KEY (ID)) Requête: DataModifyQuery()

Exception interne : java.sql.SQLException: La table/vue 'SEQUENCE' existe déjà dans le schéma 'ADMIN'. Code d'erreur: 30000 Appel: CREATE TABLE SEQUENCE (seq_name VARCHAR (50) NOT NULL, SEQ_COUNT DECIMAL, clé primaire (seq_name)) Requête: DataModifyQuery()

Voici mon code JPA

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package mymoney; 

import java.io.Serializable; 
import java.util.Date; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 
import javax.persistence.Temporal; 
import javax.persistence.TemporalType; 

/** 
* 
* @author sugan 
*/ 
@Entity 
@Table(schema = "APP") 
public class pocketMoney implements Serializable { 

    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy=GenerationType.TABLE) 
    private int id; 
    @Temporal(TemporalType.DATE) 
    @Column(name = "DateofSpending") 
    private Date dos; 
    private String description; 
    private int amount; 

    public int getAmount() { 
     return amount; 
    } 

    public void setAmount(int amount) { 
     this.amount = amount; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public Date getDos() { 
     return dos; 
    } 

    public void setDos(Date dos) { 
     this.dos = dos; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    @Override 
    public int hashCode() { 
     int hash = 0; 
     hash += (int) id; 
     return hash; 
    } 

    @Override 
    public boolean equals(Object object) { 
     // TODO: Warning - this method won't work in the case the id fields are not set 
     if (!(object instanceof pocketMoney)) { 
      return false; 
     } 
     pocketMoney other = (pocketMoney) object; 
     if (this.id != other.id) { 
      return false; 
     } 
     return true; 
    } 

    @Override 
    public String toString() { 
     return "mymoney.pocketMoney[id=" + id + "]"; 
    } 
} 

persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.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_1_0.xsd"> 
    <persistence-unit name="myMoneyPU" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <class>mymoney.pocketMoney</class> 
    <properties> 
     <property name="eclipselink.jdbc.password" value="adminadmin"/> 
     <property name="eclipselink.jdbc.user" value="admin"/> 
     <property name="eclipselink.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/> 
     <property name="eclipselink.jdbc.url" value="jdbc:derby:pocketmoney;create=true"/> 
     <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> 
    </properties> 
    </persistence-unit> 
</persistence> 
+2

Sans voir le code, ce qui provoque l'erreur, Je peux juste traduire le message d'erreur. Il semble que votre code essaie de créer des tables, qui existent déjà dans votre base de données ... –

Répondre

2

Quel que soit le fournisseur JPA que vous utilisez, je pense qu'il est configuré pour g Énatez et exportez les objets de base de données correspondant à vos mappages ... et ceux qui existent déjà. En fonction de votre configuration, sur le fournisseur JPA, sur le message exact (EclipseLink enregistre ces messages comme avertissement AFAIK), cela peut être normal ou une "erreur de configuration".

Si vous voulez plus de détails, s'il vous plaît dites-nous quel fournisseur vous utilisez et montrez votre persistence.xml.

Mise à jour: Comme on s'y attendait, vous utilisez EclipseLink et ces messages sont « normaux » (ils sont enregistrés comme avertissement si vous regardez attentivement le message IIRC)