JPA Änderungen werden nicht gespeichert

Noisefever

Mitglied
Hallo allerseits!

Ich verzweifle an diesem Problem! Ich möchte mit OpenJPA in eine Datenbank speichern. Das hat anfangs wunderbar geklappt, aber dann hab ich das Enhancen der Klassen eingerichtet (also beim Builden, nicht mehr zur Laufzeit). Und plötzlich werden keine Änderungen mehr angenommen. Einfügen geht, Löschen geht. Aber nicht ändern. Nichtmal beim supereinfachen Test:

Java:
public void test(){
		EntityManagerFactory emf = Persistence.createEntityManagerFactory(Datenbankname);
		EntityManager em = emf.createEntityManager();
		em.getTransaction().begin();
		User user = em.find(User.class, 10);
		
		System.out.println(user.username);
		user.password = "12345";
		em.persist(user);
		System.out.println("Before: "+user.password);
		em.getTransaction().commit();
		em.refresh(user);
		em.close();
		emf.close();
		System.out.println("After: "+user.password);
	}

Konkret passiert da folgendes:
Der User mit ID 10 wird geladen. Er hat kein Passwort. Ich ändere das Passwort. Ich gebe es zur Kontrolle aus. Er gibt 12345 korrekt aus. Ich speichere es sogar nochmal em.persist() ab - was ja ansich garnicht nötig ist. Dann commite ich es. Kaum refreshe ich ist das Passwort wieder leer.

Also das gibts doch garnicht oder? Was läuft denn hier falsch? :autsch:
Wie gesagt: enhance ich nicht beim Builden funktioniert das. Ich kann aber nicht auf das enhancen verzichten.

Ich bin für jede Hilfe dankbar!

Ach ja, die Klasse User:

Java:
@Entity(name = "Users")
public class User {
	@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
	public int id;
	@Column(nullable = false, length = 50)
	public String username;
	@Column(nullable = true, length = 150)
	public String password;
}

und die persistence.xml:

[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="Subsystem" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>dataclasses.User</class>
<properties>
<property name="openjpa.ConnectionDriverName" value="net.sourceforge.jtds.jdbc.Driver" />
<property name="openjpa.ConnectionURL" value="jdbc:jtds:sqlserver://server/database" />
<property name="openjpa.ConnectionUserName" value="xxxxx" />
<property name="openjpa.ConnectionPassword" value="xxxxx" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
<property name="openjpa.RuntimeUnenhancedClasses" value="supported"/>
</properties>
</persistence-unit>
</persistence>
[/XML]
 
Zuletzt bearbeitet:

Noisefever

Mitglied
Okay ich habs gefunden. Wens interessiert:

Scheinbar wird Field Access nach dem Enhancen nicht mehr wahrgenommen, nur noch Property Access (Getter&Setter). Stehen tut das aber irgendwie nirgends - oder ich bin zu blöd das zu finden.

Super, so kann man Zeit auch totschlagen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JSF Daten werden nicht aktualisiert aus Datenbank gelesen Data Tier 3
D Hibernate Tabellen werden nicht mehr erstellt Data Tier 2
R Beim deployen und initialisieren der DB werden Umlaute nicht gespeichert Data Tier 5
N Gerade so viele Parents auswählen, dass mindestens 20 Children angezeigt werden Data Tier 7
A Fehlermeldung: Tabellen werden nicht gefunden Data Tier 2
N Spring / OpenJPA Inheritance: Subklassen werden nicht erkannt Data Tier 4
D Daten werden nicht gespeichert mit Spring + JPA (Hibernate): Data Tier 6
N Entity-Object muss auf Client aktualisiert werden Data Tier 13
J Umstieg von Wildfly 13->14, JPA 2.1->2.2, schreiben funktioniert nicht mehr Data Tier 10
O JPA Persistieren mit JTA funktioniert nicht Data Tier 0
G JPA kann Objekt nicht löschen Data Tier 4
G Zuweisen von eigenen DB-Verbindungen nicht möglich Data Tier 3
M HibernateTemplate löscht nicht ohne flush() Data Tier 0
S JPA Cascade: Entity nur speichern, wenn sie nicht schon existiert Data Tier 0
E JPA Session.delete einer Entity wird nicht ausgeführt Data Tier 2
Kenan89 9.2-1000 JDBC 4 nicht für Java EE ? Data Tier 3
neonfly <exclude-unlisted-classes>true</exclude-unlisted-classes> mag <class>package.Klasse</class> nicht Data Tier 2
K JPA One2Many-Set erkennt seine Inhalte nicht wieder Data Tier 3
B Datensatz wird nicht in DB geschrieben! Data Tier 2
N Löschen OneToMany Beziehung (delete-orphan) geht nicht Data Tier 2
T JPA2/Hibernate: Many-to-Many-Relation wird u.a. beim löschen nicht aktualisiert Data Tier 14
Landei JPA - persist persisted nicht Data Tier 4
D jpa/eclipselink setMaxResults() funktioniert nicht mit MySql?! Data Tier 9
D jpa "pessimistic lock" funktioniert nicht?! Data Tier 11
L Hibernate - Tabelle nicht gemappt!? Data Tier 4
H Log4J loggt Hibernate nicht in Kombination mit Tomcat Data Tier 2
W JPA Persistenz 2x hintereinander funktioniert nicht Data Tier 3
W JPA generiert die Tabellen bzw. die DDL Files nicht Data Tier 6
D Hibernate: Objekt wird nicht gelöscht. Data Tier 5
K Hibernate: OneToOne funktioniert nicht Data Tier 3
D Hibernate schreibt nicht in DB Data Tier 1

Ähnliche Java Themen


Oben