Discriminator as a whole
Usually, if you specify the discriminator value as an integer in a subclass, you will get an error
Failed to format 'TYPE' discriminator value to SQL string using (...)
If you want to use the discriminator as an integer value, you first need to specify it for the base class as an integer by setting the attribute-attribute-attribute in the class element:
<class name="AdminNotes" table="admin_notes" abstract="true" discriminator-value= "-1">
This replaces the default behavior when the discriminator is the class name when the value is not found.
<hibernate-mapping package="com.tlr.finance.mappings"> <class name="AdminNotes" table="admin_notes" abstract="true" discriminator-value= "-1"> <id name="adminNoteId" column="admin_note_id" type="integer"> <generator class="identity" /> </id> <discriminator column="note_type" type="integer" /> <property name="adminNoteType" column="note_type" type="string" not-null="true" /> <property name="adminNote" column="note" type="string" not-null="true" /> <property name="adminNoteAdded" column="note_date" type="timestamp" not-null="true" /> <subclass name="AdminNotes" discriminator-value="0" entity-name="project"> <many-to-one name="noteObject" column="object_id" class="PsData" /> </subclass> <subclass name="AdminNotes" discriminator-value="1" entity-name="user"> <many-to-one name="noteObject" column="object_id" class="Timekeep" /> </subclass> <subclass name="AdminNotes" discriminator-value="2" entity-name="costCenter"> <many-to-one name="noteObject" column="object_id" class="CostCenter" /> </subclass> </class> </hibernate-mapping>
Damian Leszczyński - Vash
source share