Java Reference
In-Depth Information
<jdbc:embedded-database id="dataSource" type="H2">
<jdbc:script location="classpath:schema.sql"/>
<jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>
The schema and test-data SQL files define a single table, called PRODUCT , with three
rows:
create table PRODUCT (
id bigint generated by default as identity (start with 1),
name varchar(255), price double, primary key (id)
)
insert into PRODUCT(name, price) values('baseball', 5.99)
insert into PRODUCT(name, price) values('basketball', 10.99)
insert into PRODUCT(name, price) values('football', 7.99)
Spring provides a bean to represent the EntityManagerFactory , which has a handful
of properties to set:
<bean id="entityManagerFactory" class=
"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="jpaDemo" />
<property name="packagesToScan">
<list>
<value>mjg</value>
</list>
</property>
<property name="jpaVendorAdapter">
<bean class=
"org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="H2" />
</bean>
</property>
</bean>
The LocalContainerEntityManagerFactoryBean [ 8 ] class uses the data source
bean defined previously, scans the given packages for entities, and uses Hibernate as its
implementation.
8 Extremely long class names are a Spring staple. My favorite is AbstractTransactional-Data-Source-
Spring-ContextTests , which has 49 characters and is even deprecated. What's yours?
 
Search WWH ::




Custom Search