一、准备工作
建立springmvc项目,添加spring data jpa 需要依赖 jar 包,
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.6.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<version>1.9.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
二、编码
1.applicationContext.xml
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<!--<property name="generateDdl" value="true" />-->
<property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
<!--<property name="database">
<value>ORACLE</value>
</property>-->
</bean>
</property>
<!-- 实体自动生成表结构 -->
<property name="jpaProperties">
<props>
<prop key="hibernate.show_sql">false</prop>
<!--<prop key="hibernate.format_sql">true</prop>-->
<!--<prop key="hibernate.hbm2ddl.auto">create</prop>-->
</props>
</property>
<!--扫描表-->
<property name="packagesToScan">
<list>
<value>com.saber.model</value>
</list>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 事务 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<jpa:repositories base-package="com.saber.repository"
transaction-manager-ref="transactionManager"
entity-manager-factory-ref="entityManagerFactory"/>
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
2.UserRepositoy .java
import java.util.List;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.saber.model.User;
public interface UserRepositoy extends PagingAndSortingRepository<User, String>{
@Query("FROM User WHERE id = ?")
List<User> findByName(String name);
}
3.测试
@Test
public void testQuery(){
List<User> users = userRepositoy.findByName("saber");
ehCacheTool.put("users", users);
if(null != users && users.size() > 0){
for (User user : users) {
System.err.println(user.getName());
}
}
List<User> users1 = (List<User>) ehCacheTool.get("users");
System.err.println("asffsf:" + users1.get(0).getName());
}