Hibernate: plusieurs à un en option avec des colonnes non nulles
Question
J'ai une relation en option entre deux classes. Hibernate traduit la propriété pour être facultative en définissant les clés étrangères sur NULL.
Mon Schema DB ne permet pas aux colonnes d'être nulles. La propriété à option est représentée par la valeur par défaut de ces colonnes.
<class name="sth.Alpha" ...>
....
<many-to-one name="beta" not-found="ignore" class="sth.Beta" insert="true" update="true">
<column name="a1/>
<column name="a2/>
</many-to-one>
</class>
<class name="sth.Alpha" ...>
<composite-id>
<key-property name="b1" type="int">
<column name="b1" precision="8" scale="0"/>
</key-property>
<key-property name="b2" type="int">
<column name="b2" precision="8" scale="0"/>
</key-property>
</composite-id>
</class>
La sélection des données n'est pas un problème en raison de not-found="ignore"
dans le may-to-one-tag, cela entraînera un null
-beta
-objet. Mais si je veux insérer un Alpha
? avec beta
mis à null
. J'obtiens une exception, qu'il n'est pas possible d'insérer null
à a1
et a2
.
Je me débarrasse de ce problème si je mets insert
et update
à false. Mais cela se traduit par ne pas enregistrer la relation si elle est définie.
La base de données ne peut pas être modifiée et la version hibernate est fixée à 3,5
Je serais aussi heureux si tu me dis que ce n'est pas possible
La solution
comment utiliser 0 au lieu de null en collaboration avec <id unsavedvalue="whatever">
pourrait aider
ou