A simple example using a one-to-many relationship in Hibernate with an Annotation configuration to find, save, and update a record.
A Person has a one-to-many relationship with Address.
The jdbc:embedded-database element is used to initialize the test HSQLDB database and
the LocalSessionFactoryBean is used to configure Hibernate.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:/schema.sql" />
</jdbc:embedded-database>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
p:dataSource-ref="dataSource">
<property name="mappingLocations">
<list>
<value>classpath:org/springbyexample/orm/hibernate3/bean/Address.hbm.xml</value>
<value>classpath:org/springbyexample/orm/hibernate3/bean/Person.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.format_sql=true
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
</property>
</bean>
</beans>
The annotatedClasses property is used to set a list of Hibernate annotated classes. The Person DAO is configured using Hibernate's session factory.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:org/springbyexample/orm/hibernate3/shared-context.xml"/>
<!-- Override xml session factory imported from shared-context.xml -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
p:dataSource-ref="dataSource">
<property name="annotatedClasses">
<list>
<value>org.springbyexample.orm.hibernate3.annotation.bean.Person</value>
<value>org.springbyexample.orm.hibernate3.annotation.bean.Address</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.format_sql=true
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
</property>
</bean>
<bean id="personDao"
class="org.springbyexample.orm.hibernate3.annotation.dao.PersonDaoImpl"
p:sessionFactory-ref="sessionFactory" />
</beans>