Hibernate - General error: Column 'role_id' cannot be null

webmagier

Mitglied
Ein Kunde meiner Anwendung gehört zu einer Benutzerrolle. D.h. in der Tabelle customers gibt es einen Foreign Key "role_id" zu einer Tabelle "roles". MySQL habe ich gesagt, dass diese role_id per default 3 ist.
Wenn ich das von Hand über die Commandozeile mache das auch, aber ich kann hibernate nicht davon überzeugen den neuen Kunden zu speichern, solange er keine Rolle hat. Hier erstmal das mapping zu meiner CustomerBean:

Code:
<?xml version="1.0"?>
 
<!DOCTYPE hibernate-mapping PUBLIC
 
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
 
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
 
<hibernate-mapping>
 
<!-- reisebuero.model.CustomerBean root -->
 
<class name="reisebuero.model.CustomerBean" table="customers">
 
<id name="id" type="int" column="id">
 
<generator class="native"/>
 
</id>
 
<property name="mobile" column="mobile" type="string" />
 
<property name="fax" column="fax" type="string"/>
 
<property name="street" column="street" type="string"/>
 
<property name="country" column="country" type="string"/>
 
<property name="info" column="info" type="string"/>
 
<property name="forename" column="forename" type="string"/>
 
<property name="date" column="date" type="date"/>
 
<property name="surname" column="surname" type="string"/>
 
<property name="email" column="email" type="string"/>
 
<property name="salutation" column="salutation" type="string"/>
 
<property name="phoneJob" column="phone_job" type="string"/>
 
<property name="phonePrivate" column="phone_private" type="string"/>
 
<property name="zip" column="zip" type="string"/>
 
<property name="userName" column="username" type="string"/>
 
<property name="location" column="location" type="string"/>
 
<property name="password" column="password" type="string"/>
 
<many-to-one name="role" class="reisebuero.model.RoleBean" column="role_id"/>
 
</class>
 
</hibernate-mapping>

Beim speichern des Kunden (ohne Rolle) bekomme ich dann folgende Fehlermeldung:

Could not insert: General error: Column 'role_id' cannot be null

Ich habe in der Mappimg datei schon versucht das not-null Attribut für die Rolle auf true zu setzen, hat aber nix gebracht:

<many-to-one name="role" class="reisebuero.model.RoleBean" column="role_id" not-null="true"/>

Wo ist der Fehler? Lösung?


Mfg Daniel Richter
 
Zuletzt bearbeitet:
Wenn dann probiere es mal mit not-null="false". Ich gehe aber eher davon aus, dass die DB Spalte role_id not-null definiert ist. Schau mal bitte beides nach.
 
Zurück