Polished readme.md.
This commit is contained in:
141
readme.md
141
readme.md
@@ -1,10 +1,8 @@
|
||||
Spring Data JPA
|
||||
=======================
|
||||
# Spring Data JPA #
|
||||
|
||||
The primary goal of the [Spring Data](http://www.springsource.org/spring-data) project is to make it easier to build Spring-powered applications that use data access technologies. This module deals with enhanced support for JPA based data access layers.
|
||||
|
||||
Features
|
||||
--------
|
||||
## Features ##
|
||||
|
||||
* Implementation of CRUD methods for JPA Entities
|
||||
* Dynamic query generation from query method names
|
||||
@@ -14,8 +12,7 @@ Features
|
||||
* Possibility to integrate custom repository code
|
||||
* Easy Spring integration with custom namespace
|
||||
|
||||
Getting Help
|
||||
------------
|
||||
## Getting Help ##
|
||||
|
||||
This README as well as the [reference documentation](http://static.springsource.org/spring-data/data-jpa/snapshot-site/reference/html) are the best places to start learning about Spring Data JPA. There are also [two sample applications](https://github.com/SpringSource/spring-data-jpa-examples) available to look at.
|
||||
|
||||
@@ -24,98 +21,98 @@ The main project [website](http://www.springsource.org/spring-data) contains lin
|
||||
For more detailed questions, use the [forum](http://forum.springsource.org/forumdisplay.php?f=27). If you are new to Spring as well as to Spring Data, look for information about [Spring projects](http://www.springsource.org/projects).
|
||||
|
||||
|
||||
# Quick Start
|
||||
## Quick Start ##
|
||||
|
||||
Download the jar though Maven:
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.data</groupId>
|
||||
<artifactId>spring-data-jpa</artifactId>
|
||||
<version>1.0.0.BUILD-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.data</groupId>
|
||||
<artifactId>spring-data-jpa</artifactId>
|
||||
<version>1.0.0.BUILD-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<repository>
|
||||
<id>spring-maven-snapshot</id>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<name>Springframework Maven SNAPSHOT Repository</name>
|
||||
<url>http://maven.springframework.org/snapshot</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>spring-maven-snapshot</id>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<name>Springframework Maven SNAPSHOT Repository</name>
|
||||
<url>http://maven.springframework.org/snapshot</url>
|
||||
</repository>
|
||||
|
||||
Also include your JPA persistence provider of choice (Hibernate, EclipseLink, OpenJpa). Setup basic Spring JPA configuration as well as Spring Data JPA repository support.
|
||||
|
||||
<?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:jdbc="http://www.springframework.org/schema/jdbc"
|
||||
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
|
||||
<?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:jdbc="http://www.springframework.org/schema/jdbc"
|
||||
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/jdbc
|
||||
http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
|
||||
http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/data/jpa
|
||||
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
|
||||
|
||||
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="jpaVendorAdapter">
|
||||
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="jpaVendorAdapter">
|
||||
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<jdbc:embedded-database id="dataSource" type="HSQL" />
|
||||
<jdbc:embedded-database id="dataSource" type="HSQL" />
|
||||
|
||||
<jpa:repositories base-package="com.acme.repositories" />
|
||||
</beans>
|
||||
<jpa:repositories base-package="com.acme.repositories" />
|
||||
</beans>
|
||||
|
||||
Create an entity:
|
||||
|
||||
|
||||
@Entity
|
||||
public class User {
|
||||
@Entity
|
||||
public class User {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
private Integer id;
|
||||
private String firstname;
|
||||
private String lastname;
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
private Integer id;
|
||||
private String firstname;
|
||||
private String lastname;
|
||||
|
||||
// Getters and setters
|
||||
}
|
||||
// Getters and setters
|
||||
}
|
||||
|
||||
Create a repository interface in com.acme.repositories:
|
||||
Create a repository interface in `com.acme.repositories`:
|
||||
|
||||
public interface UserRepository extends JpaRepository<User, Long> {
|
||||
List<User> findByLastname(String lastname);
|
||||
}
|
||||
public interface UserRepository extends CrudRepository<User, Long> {
|
||||
List<User> findByLastname(String lastname);
|
||||
}
|
||||
|
||||
Write a test client
|
||||
|
||||
@RunWith(SpringJUnit4TestRunner.class)
|
||||
@ContextConfiguration("classpath:your-config-file.xml")
|
||||
public class UserRepositoryIntegrationTest {
|
||||
@RunWith(SpringJUnit4TestRunner.class)
|
||||
@ContextConfiguration("classpath:your-config-file.xml")
|
||||
public class UserRepositoryIntegrationTest {
|
||||
|
||||
@Autowrired UserRepository repository;
|
||||
@Autowrired UserRepository repository;
|
||||
|
||||
@Test
|
||||
public void sampleTestCase() {
|
||||
User dave = new User("Dave", "Matthews");
|
||||
repository.save(user);
|
||||
@Test
|
||||
public void sampleTestCase() {
|
||||
User dave = new User("Dave", "Matthews");
|
||||
repository.save(user);
|
||||
|
||||
User carter = new User("Carter", "Beauford");
|
||||
repository.save(carter);
|
||||
User carter = new User("Carter", "Beauford");
|
||||
repository.save(carter);
|
||||
|
||||
List<User> result = repository.findByLastname("Matthews");
|
||||
assertThat(result.size(), is(1));
|
||||
assertThat(result, hasItem(dave));
|
||||
}
|
||||
}
|
||||
List<User> result = repository.findByLastname("Matthews");
|
||||
assertThat(result.size(), is(1));
|
||||
assertThat(result, hasItem(dave));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Contributing to Spring Data
|
||||
---------------------------
|
||||
## Contributing to Spring Data ##
|
||||
|
||||
Here are some ways for you to get involved in the community:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user