Дискриминатор как целое число
Обычно, если вы указываете значение дискриминатора как целое число в подклассе, вы получаете ошибку
Не удалось отформатировать значение дискриминатора 'TYPE' в строку SQL, используя (...)
Если вы хотите использовать дискриминатор в качестве целочисленного значения, вам необходимо прежде всего указать его для базового класса в качестве целого числа, установив атрибутcriminator-value в элементе класса:
<class name="AdminNotes" table="admin_notes" abstract="true" discriminator-value= "-1">
Это заменяет поведение по умолчанию, где дискриминатор является именем класса, когда значение не найдено.
<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" />
<!-- Make this property an enumerated type. It is the discriminator. -->
<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" /><!-- Project -->
</subclass>
<subclass name="AdminNotes" discriminator-value="1" entity-name="user">
<!-- Rename timekeep to user -->
<many-to-one name="noteObject" column="object_id" class="Timekeep" /><!-- user -->
</subclass>
<subclass name="AdminNotes" discriminator-value="2" entity-name="costCenter">
<!-- Rename timekeep to user -->
<many-to-one name="noteObject" column="object_id" class="CostCenter" /><!-- cost center -->
</subclass>
</class>
</hibernate-mapping>