# OpenJPA: Problem mit @GeneratedValue



## Orthak (16. September 2010)

Hallo,
ich arbeite an einer Anwendung welche OpenJPA für die Persistenz benutzt. Nach dem Durachbeiten des Tutorials auf der Projektseite war soweit auch alles klar, allerdings scheitert bei mir der Versuch Beans in eine Datenbank zu schreiben immer mit der gleichen Meldung:


```
Exception in thread "main" <openjpa-2.0.1-r422266:989424 nonfatal user error>
 org.apache.openjpa.persistence.InvalidStateException: The generated value processing 
detected an existing value assigned to this field: LustigerBean.id.  This existing value was
 either provided via an initializer or by calling the setter method.  You either need to 
remove the @GeneratedValue annotation or modify the code to remove the initializer 
processing.
```

Der Fehler kommt direkt beim ersten Bean den ich einfügen möchte. Ich bin mir sicher den Wert vorher nicht gesetzt zu haben. Die "strategy" spielt dabei keine Rolle. Verbindung zur Datenbank besteht. Setze ich das ID-Feld einfach per System.currentTimeMillis() funktioniert die Anwendung auch. Doch das ist nicht Sinn der Sache .

Hatte Jemand schonmal das Problem oder kann sich einen Reim darauf machen?



Anbei der Bean:

```
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity(name = "LustigerBean")
public class LustigerBean {

    @Id
    @Column(name = "ID", nullable = false)
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long id;
    
    @Column(name = "name")
    private String name;
    
    public void setName(String name) {
        this.name = name;
    }
}
```


----------



## Thomas Darimont (16. September 2010)

Hallo,

verwende einfach Long anstatt long  bei der id... null bedeutet unsaved Value

Gruß Tom


----------



## Orthak (16. September 2010)

Hallo Tom,
das habe ich schon ausprobiert; leider ohne Erfolg. Es bleibt bei der Fehlermeldung.


*Edit*: Hier noch ein paar Informationen...
- Ich benutze OpenJPA in einem JavaSE / Groovy Projekt
- Als Datenbank kommt HSQL im Servermodus zum Einsatz (selbe Problematik mit MySQL)
- Java-Version 1.6 (SDK), OpenJPA 2.01
- SQL-Trace:

```
372  EntityPersistence  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.HSQLDictionary".
1454  EntityPersistence  TRACE  [main] openjpa.jdbc.SQL - <t 9296972, conn 24778599> executing prepstmnt 7912507 SELECT SEQUENCE_VALUE FROM OPENJPA_SEQUENCE_TABLE WHERE ID = ? [params=?]
1455  EntityPersistence  TRACE  [main] openjpa.jdbc.SQL - <t 9296972, conn 24778599> [1 ms] spent
1458  EntityPersistence  TRACE  [main] openjpa.jdbc.SQL - <t 9296972, conn 24778599> executing prepstmnt 6206601 UPDATE OPENJPA_SEQUENCE_TABLE SET SEQUENCE_VALUE = ? WHERE ID = ? AND SEQUENCE_VALUE = ? [params=?, ?, ?]
1460  EntityPersistence  TRACE  [main] openjpa.jdbc.SQL - <t 9296972, conn 24778599> [1 ms] spent
Exception in thread "main" <openjpa-2.0.1-r422266:989424 nonfatal user error> org.apache.openjpa.persistence.InvalidStateException: The generated value processing detected an [...]
```


----------

