JSF, Hibernate & MySQL: Keine Datenbankaktualisierung

Status
Nicht offen für weitere Antworten.

Ehdoranil

Mitglied
Hallo

ich habe folgendes Problem: Ich bin grade am schreiben einer JSF Anwendung, die ihre Datenbank-Anbindung an MySQL mittels Hibernate umsetzt. Hierbei geht es grade um das Registrieren neuer Nutzer im System. Ich erzeuge ein User-Object und speichere dieses über das DAO. Der Code wird ohne Fehler oder Warnungen ausgeführt, im log4j und MySQL-log werden die Befehle auch korrekt angezeigt, aber in der Datenbank befindet sich kein neuer Datensatz ^^

Hier die codes - jeweils stell ich nur die relevanten aspekte dar:

Das Datenbankmodell sieht wie folgt aus:
Code:
tbluser (
- [u]cntid[/u],
- strname,
- strfirstname,
- stremail,
- strlogin,
- strpass,
- intdeputy,
- intcompany,
- strsystemlanguage, 
- bolenabled,
- stremailcertifiedpass)

tblcompany (
- [u]cntid[/u],
- strname)

tblrole (
- [u]cntid[/u],
- strname)

tbluser_role_request (
- [u]intuser[/u],
- [u]introle[/u])

das prefix vorne zeigt den datentyp: int = integer(8), str = varchar(45), bol = tinyint(1), cnt = integer(8) autoincrement

Die JavaKlassen wie folgt (setters und getters hab ich hier mal weggelassen, sie existieren für alle attribute):
Code:
class User{
 private int id;
 private String name;
 private String firstName;
 private String email;
 private String login;
 private String pass;
 private User deputy;
 private Company company;
 private String systemLanguage;
 private boolean enabled;
 private emailCertifiedPass;

 private List<Role> requestedRoles = new ArrayList<Role>();
}

class Company{
 private int id;
 private String name;

 private List<User> employees = new ArrayList<User>();
}

class Role{
 private int id;
 private String name;
}

Das hibernate-mapping:
Code:
...
<class name="User" table="tbluser">
  <id name="id" column="cntid"><generator class="native" /></id>
  <property name="name" column="strname" />
  <property name="firstName" column="strfirstname" />
  <property name="email" column="stremail" />
  <property name="login" column="strlogin" />
  <property name="pass" column="strpass" />
  <many-to-one name="deputy" column="intdeputy" class="User" />
  <many-to-one name="company" column="intcompany" class="Company" />
  <property name="systemLanguage" column="strsystemlanguage" />
  <property name="enabled" column="bolenabled" />
  <property name="emailCertifiedPass" column="strEmailCertifiedPass" /> 

  <bag name="requestedRoles" tbl="tbluser_role_request" lazy="true" cascade="save-update">
    <key column="intuser" />
    <many-to-many class="Role" column="introle" />
  </bag
</class>

<class name="Company" table="tblcompany">
  <id name="id" column="cntid"><generator class="native" /></id>
  <property name="name" column="strname" />

  <bag name="employees" lazy="true" cascade="save-update">
    <key column="intcompany" />
    <one-to-many class="User" />
  </bag>
</class>

<class name="Role" table="tblrole">
  <id name="id" column="cntid"><generator class="native" /></id>
  <property name="name" column="strname" />
</class>
...

Analog zu Hibernate And MyFaces - MyFaces Wiki hab ich einen eigenen OpenSessionInViewFilter eingebunden.
Ich binde eine User-Bean an die Felder des Registrierungsforumlars (Converter für Company und Role existieren) und schreibe dieses Objekt über
Code:
 getHibernateTemplate().save(user);
im DAO in die Datenbank.

Der Code wird wunderbar ausgeführt, keine Exception wird geworfen, log4j listet keine Warnungen auf. Der <h:messages /> ist leer. Auch der Filter wird aufgerufen (mit nem system.out.println überprüft).
Leider ist der Datenbankbestand danach immernoch genau der selbe, wie davor :(

ich hab mal über hibernate.show_sql und log4j.logger.org.hibernate.type=debug die hibernate-sql anweisungen ausgeben lassen:
Code:
Hibernate: insert into tblUser (
    strName, strFirstName, strEmail, strLogin, strPass,
    intDeputy, intCompany, strSystemLanguage, bolEnabled,
    strEmailCertificatePass) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
DEBUG [http-8080-1] (NullableType.java:59) ?? binding 'MYLASTNAME' to parameter: 1
DEBUG [http-8080-1] (NullableType.java:59) ?? binding 'MYFIRSTNAME' to parameter: 2
DEBUG [http-8080-1] (NullableType.java:59) ?? binding 'MYEMAIL' to parameter: 3
DEBUG [http-8080-1] (NullableType.java:59) ?? binding 'MYLOGIN' to parameter: 4
DEBUG [http-8080-1] (NullableType.java:59) ?? binding 'MYPASS' to parameter: 5
DEBUG [http-8080-1] (NullableType.java:52) ?? binding null to parameter: 6
DEBUG [http-8080-1] (NullableType.java:59) ?? binding '1' to parameter: 7
DEBUG [http-8080-1] (NullableType.java:59) ?? binding 'de' to parameter: 8
DEBUG [http-8080-1] (NullableType.java:59) ?? binding 'false' to parameter: 9
DEBUG [http-8080-1] (NullableType.java:59) ?? binding null to parameter: 10
Hibernate: insert into tblUser_Role_Request (intUser, intRole) values (?, ?)
DEBUG [http-8080-1] (NullableType.java:59) ?? binding '2' to parameter: 1
DEBUG [http-8080-1] (NullableType.java:59) ?? binding '1' to parameter: 2
Hibernate: insert into tblUser_Role_Request (intUser, intRole) values (?, ?)
DEBUG [http-8080-1] (NullableType.java:59) ?? binding '2' to parameter: 1
DEBUG [http-8080-1] (NullableType.java:59) ?? binding '2' to parameter: 2

Die Spalten sind nullable, die Rollen #1 und #2 exitieren. MySQL ist nicht case-sensitive...
nun - ich hab auch das mysql.log da:
Code:
4 Prepare     [8] insert into tblUser (
   strName, strFirstName, strEmail, strLogin, strPass,
   intDeputy, intCompany, strSystemLanguage, bolEnabled,
   strEmailCertificatePass) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
4 Execute     [8] insert into tblUser (
   strName, strFirstName, strEmail, strLogin, strPass,
   intDeputy, intCompany, strSystemLanguage, bolEnabled,
   strEmailCertificatePass) values 
   ('MYLASTNAME', 'MYFIRSTNAME', 'MYEMAIL', 'MYLOGIN', 'MYPASS', NULL, 1, 'de', 0, NULL)
7 Query       SHOW GLOBAL STATUS
7 Query       SHOW INNODB STATUS
4 Prepare     [9] insert into tblUser_Role_Request (intUser, intRole) values (?, ?)
4 Execute     [9] insert into tblUser_Role_Request (intUser, intRole) values (2, 1)
4 Execute     [9] insert into tblUser_Role_Request (intUser, intRole) values (2, 2)

findet einer den Fehler? Ich verzweifle noch hier :(

Vielen Dank für eure Hilfe
 

sanduleak

Mitglied
Ne, wie soll man da einen Fehler finden in dem ganzen Wirrwar.
Mich würde aber mal interessieren, wo man da die xml Dateien reinmacht und und was für ein Projekt man braucht wenn man mit Hibernate arbeitet, dass es funktioniert?
Gibt es da Informationsquellen dazu?
 

KSG9|sebastian

Top Contributor
Der Fehler liegt daran dass keine Transaktion gestartet wird. Hatte ich schon öffters.
Code:
Transaction tx = getHibernateTemplate().getSession().beginTransaction();
getHibernateTemplate().save();
tx.commit();

Das ist aber im Endeffekt nur "pfusch". Musst mal schauen woran das liegt dass keine Transaktionen verwendet werden. Evtl. TransactionProvider in der hibernate.cfg.xml einstellen.
 

AlArenal

Top Contributor
sanduleak hat gesagt.:
Ne, wie soll man da einen Fehler finden in dem ganzen Wirrwar.
Mich würde aber mal interessieren, wo man da die xml Dateien reinmacht und und was für ein Projekt man braucht wenn man mit Hibernate arbeitet, dass es funktioniert?
Gibt es da Informationsquellen dazu?

Was für ein Wirrwarr??

Klar gibt es Infos, z.B. auf der Hibernate Website, im Forum, auf Google, ...
 

KSG9|sebastian

Top Contributor
Kann da AlArenal nur zustimmen. Ich arbeite schon seit den Anfängen von Hibernate damit. Und ganz am Anfang war es wirklich sehr mau mit Doku. Mittlerweile ist es imho absolut Klasse. Schon alleine was der Hibernate Reference Guide hergibt reicht für fast jedes Projekt. Integration anderer Frameworks ist auch sehr gut Dokumentiert. Beispielanwendungen werden mitgeliefert. Ich weiß nicht was du noch willst :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Java EE 6, eclipse, maven, jsf, hibernate, mysql Allgemeines EE 8
G JSF | Hibernate | MySQL Allgemeines EE 17
M Tomcat, Hibernate, MySQL und die EOFException Allgemeines EE 7
A Hibernate-Problem mit MySQL-Cluster Allgemeines EE 6
S Java Enum in MySQL und Hibernate Allgemeines EE 3
P struts Hibernate MySQL Select Statement Allgemeines EE 24
O Hibernate Fehlermeldung bei start des Servers Allgemeines EE 2
E Frage zu Wildfly und Hibernate OGM Allgemeines EE 0
S Frage zu Jersey + Hibernate Allgemeines EE 1
D GWT mit Hibernate und Sql Datenbank Allgemeines EE 2
B Wicket, Hibernate, H2 memDB Anfänger Frage Allgemeines EE 2
H Hibernate - OneToMany - mappedBy reference an unknown target entity property Allgemeines EE 1
A Hibernate endlich zu Laufen bekommen... Allgemeines EE 11
A Erste Schritte... Problem mit Hibernate Allgemeines EE 15
LadyMilka Ablaufdiagramm mit/ohne Hibernate Allgemeines EE 2
P Mit JAXB erzeugte Klassen persistieren (Hibernate) Allgemeines EE 10
K Anfänger: Hibernate + Web Allgemeines EE 2
T Hibernate 3 + EJB 3 + JBoss 5 Allgemeines EE 6
G Persistenz mit Hibernate oder J2EE? Allgemeines EE 11
C Hibernate - Expression.or Allgemeines EE 4
D Erst Spring oder erst Hibernate lernen? Allgemeines EE 2
D Java EE vs. Spring/Hibernate Allgemeines EE 26
Y myFaces und Hibernate Session Handling Allgemeines EE 7
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
byte Remote Lazy Loading mit Spring und Hibernate Allgemeines EE 5
G JSF, Hibernate, Spring --> Struktur Allgemeines EE 2
F [Hallo] Frage zu Hibernate Mapping und Vererbung Allgemeines EE 3
G Hibernate: org.hibernate.TransactionException Allgemeines EE 4
F org.hibernate.LazyInitializationException: failed to lazily Allgemeines EE 8
J nur bestimmte Mapping-Dateien berücksichtigen (Hibernate) Allgemeines EE 14
S Hibernate EJB3 Allgemeines EE 2
E JBoss Hibernate Datenbank-Timeout Allgemeines EE 3
S Hibernate, Tomcat und Eclipse treiben mich zum Wahnsinn. Allgemeines EE 2
2 hibernate - createQuery() Allgemeines EE 9
T Hibernate die richtige Wahl? Allgemeines EE 2
M JSF mit Hibernate Allgemeines EE 14
W Hibernate *.Jar's im Klassenpfad Allgemeines EE 10
C EntityManager wirft NullpointerException: JBoss-Hibernate Allgemeines EE 4
M mit Hibernate 1:n in view richtige implementieren Allgemeines EE 3
M Hibernate Criteria frage Allgemeines EE 2
A Speicherproblem bei Webanwendung mit Hibernate und Stuts Allgemeines EE 6
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
E JOINS und Hibernate? Allgemeines EE 3
S Hibernate Mapping Problem Allgemeines EE 3
S Hibernate INSERT Problem Allgemeines EE 11
R Hibernate: many-to-many funktioniert noch nicht ganz Allgemeines EE 2
D Hibernate hql suche Date Allgemeines EE 9
B JSF + Hibernate How2 Allgemeines EE 2
G [JSF+Hibernate]: DB-Constraints in Validierungsphase? Allgemeines EE 4
G JTA ja/nein & wie (JBoss & Hibernate & Transakti Allgemeines EE 3
T Hibernate & Logging in Log4J Allgemeines EE 4
T JSTL + Struts (inkl.Hibernate) -> forEach Problem Allgemeines EE 6
G Persistenz-Entscheidung (Entity Beans, Hibernate, JDBC) Allgemeines EE 12
S Hibernate 2.x mit Eclipse 2.1 Allgemeines EE 16
2 Wildfly JPA Konfiguration für mysql Allgemeines EE 0
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
T J2EE, MySQL, Linux, Applikationsverfügbarkeit mangelhaft, Analyse Allgemeines EE 2
T Einloggen auf Seite + MYSQL, JSP Allgemeines EE 6
H Tomcat, MySQL Allgemeines EE 4
remus JBoss Authentifizierung mit MYSQL-Datenbank Allgemeines EE 4
M JSP, MySQL und JBoss "No suitable Driver" Allgemeines EE 3
V MYSQL JDBC;java.lang.ClassNotFoundException; Problem Eclipse Allgemeines EE 3
G JBoss + MySQL Allgemeines EE 8
I Sun App Server JDBC MySQL Allgemeines EE 2
F MySQL Connection Pool nach Apache Example Allgemeines EE 1
K mysql treiber problem wenn import java.sql.* bei _servlet_ Allgemeines EE 2
S JDBC Mysql Connection Problem - datasource null Allgemeines EE 3
C CMS mit JSP und MySQL, irgendwann ein Nullpointer Allgemeines EE 5
P keine verbindung vom struts framework zu mysql Allgemeines EE 2
G MySQL Connector / MXJ Allgemeines EE 2
B Struts - Connection Pool - MySQL - JDeveloper Allgemeines EE 2
G "Access denied" bei Verbindung zu MySQL mittles JS Allgemeines EE 3
D Problem jsp- mysql Allgemeines EE 2
A JSP und MySQL Problem Allgemeines EE 4
feinperligekohlensaeure JSF Keine Tabelle / Buttons werden unter Windows angezeigt + Apple schon Allgemeines EE 9
C JSF selectOneMenu keine Auswahl Allgemeines EE 8
W Keine Connection mit DB - ganz einfache Testanwendung Allgemeines EE 6
D Fehlermeldungen.und keine Ahnung was zu tun ist Allgemeines EE 3
G eigene Taglib, Attribut kann auf einaml keine Expressions Allgemeines EE 2
O überprüfen auf KEINE get-paramter Allgemeines EE 4
C Message Driven Bean soll keine Nachrichten empfangen Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben