Archive for Annotations

Spring Hibernate hbm2ddl.auto & Annotations

Spent Yesterday and today drawing up a schema for www.justcars.ie Ireland’s newest and hottest place to source your car.

To create this schema I wanted to get hibernate generate it via the POJOs I create. I am using annotations. So here is what i did:

Step One:

Create the POJO:

@Entity
public class Manufacteur {

@Id
private Integer manufacteurlId;

…..

}

Make sure you import javax.persistence.*; & not the more intuitive sounding hibernate one .

Step Two:

I am using a hibernate.cfg.xml for neatness:

<hibernate-configuration>
<session-factory name=”justCarsSessionFactory”>
<property name=”hibernate.connection.driver_class”>org.gjt.mm.mysql.Driver</property>
<property name=”hibernate.connection.password”>yourPassword</property>
<property name=”hibernate.connection.url”>jdbc:mysql://localhost:3306/YourScehma</property>
<property name=”hibernate.connection.username”>YourUsername</property>
<property name=”hibernate.default_schema”>jYourScehma</property>
<property name=”hibernate.dialect”>org.hibernate.dialect.MySQL5Dialect</property>
<property name=”show_sql”>true</property>
<property name=”hibernate.format_sql”>true</property>
<property name=”hibernate.hbm2ddl.auto”>create-drop</property>
<mapping package=”com.zeninvent.justcars.business”/>
<mapping class=”com.zeninvent.justcars.business.Manufacteur”/>
</session-factory>
</hibernate-configuration>

Change the pieces in bold as appropriate.

Step Three servlet:

Ensure your session factory bean if you are using annotations is using the AnnotationSession otherwise you will get an “Annotation Instance required ” exception.

Point the session factory to your hibernate.cfg.xml

<bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean”>

<property name=”configLocation”><value>/WEB-INF/hibernate.cfg.xml</value></property>
<property name=”schemaUpdate”><value>true</value></property>
</bean>

Step Four:

Depoly & hey Presto hibernate is creating your schema! :)

Leave a Comment