We are dealing with a hierarchy of classes, all mapped to the same table using a discriminating value.
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<class name="Address" table="ADDRESS">
<id name="id" type="long" column="ADDRESS_ID">
<generator class="seqhilo">
<param name="sequence">ADDRESS_SEQ</param>
<param name="max_lo">100</param>
</generator>
</id>
<discriminator column="ADDRESS_TYPE" type="string"/>
<property name="addressField" type="string" column="FIELD_ADDRESS"/>
<subclass name= "CityAddress" extends="Address" discriminator-value="CA">
<property name = "cityAddressField" type="string" column="FIELD_CITY_ADDRESS"/>
</subclass>
<subclass name= "RuralAddress" extends="Address" discriminator-value="RA">
<property name = "ruralAddressField" type="string" column="FIELD_RURAL_ADDRESS"/>
</subclass>
</class>
</hibernate-mapping>
When objects of these types are created in the same Hibernate session - let's say a CityAddress object and a RuralAddress object - Hibernate generates 2 batches, one for each subclass.
This results in two database hits. For wider hierarchies (9-10) subclasses, this results 9-10 batches beeing created --> becomes a performance issue.
Is there a way to group all Insert statements in only one batch?
That will make
one batch per class hierarchy.
Thanks