T
TomPomme
Gast
Ich hab jetzt ewig bei google gesucht - jedoch keine Lösung für mein Problem gefunden. Oder liegt es daran, dass ich nicht wirklich weiß, wonach ich suchen soll?
Hier mein Problem:
Ich habe erstmal zum rumprobieren eine Personenklasse geschrieben und kann die Daten auch problemlos in die Datenbank einfügen. Wenn ich jetzt jedoch mein Programm erneut aufrufe und der createEntityManagerFactory(...) aufruf stattfindet, gehen die bereits in der DB enthaltenen Daten verloren.
Was mache ich falsch? Hab ich vergessen irgendwas richtig zu schließen / beenden?
Speichern der Personendaten:
persistence.xml:
Auszug aus meinem Personen Pojo:
Ich hab mal in der DB geschaut. ID ist auf auto increment - es werden ja auch nicht alte Personendaten überschrieben, sondern die werden direkt beim Erstellen einer neuen E.M.Factory gelöscht. Der nächste Autoindex ist dann auch wieder bei 1.
[/code]
Hier mein Problem:
Ich habe erstmal zum rumprobieren eine Personenklasse geschrieben und kann die Daten auch problemlos in die Datenbank einfügen. Wenn ich jetzt jedoch mein Programm erneut aufrufe und der createEntityManagerFactory(...) aufruf stattfindet, gehen die bereits in der DB enthaltenen Daten verloren.
Was mache ich falsch? Hab ich vergessen irgendwas richtig zu schließen / beenden?
Speichern der Personendaten:
Code:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hibernatetest");
// Persondaten
final String firstName = (String) request.getParameter("firstName");
final String lastName = (String) request.getParameter("lastName");
// EntityManager
EntityManager manager = emf.createEntityManager();
// Person einfuegen
Person person = new Person(firstName, lastName);
EntityTransaction t = manager.getTransaction();
t.begin();
manager.persist(person);
t.commit();
manager.close();
emf.close();
persistence.xml:
Code:
<persistence ...>
<persistence-unit name="hibernatetest" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>servlettest.bean.Person</class>
<properties>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/hibernate_test" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.connection.username" value="ruht" />
<property name="hibernate.connection.password" value="12345" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
Auszug aus meinem Personen Pojo:
Ich hab mal in der DB geschaut. ID ist auf auto increment - es werden ja auch nicht alte Personendaten überschrieben, sondern die werden direkt beim Erstellen einer neuen E.M.Factory gelöscht. Der nächste Autoindex ist dann auch wieder bei 1.
Code:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
public int getId() {
return id;
}