开发变的越来越简单了,spring jpa的实现,让我们的接口只需要集成JpaRepository就可以了, 其他的不用多余的配置; 增删改查全部帮你实现好了,你只需要在你的实体类中加入映射注解即可, 就像下面这样:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table(name="Test_USER")
public class User implements Serializable {
@Id
@GeneratedValue(generator="uuidGenerator")
@SequenceGenerator(name = "uuidGenerator")
private Long id;
@Column(name="NAME")
private String name;
@Column(name="ADDRESS")
private String address;
//get set方法省略 ....
}
DAO的接口层, 你只需要继承JpaRepository就ok, 就像这样:
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import com.ecs.model.User;
//这不需要注解
public interface AuthDao extends JpaRepository<User, Long>{
//这个是我自己定义的方法
@Query("select t from User t where t.id =?1")
User findByID11(Long id);
}
重要的是, 你的配置文件中要做正确的配置, 如下:
<jpa:repositories base-package="com.ecs.dao"
entity-manager-factory-ref="entityManagerFactory"
transaction-manager-ref="transactionManager" />
base-package: jpa管理的类扫描路径;
entity-manager-factory-ref: EntityManager配置(核心的东西);
transaction-manager-ref: 事物配置
自定义查询使用@Query注解即可, 就像这样定义:
//这个是我自己定义的方法
@Query("select t from User t where t.id =?1")
User findByID11(Long id);
refer: http://blog.csdn.net/mxj588love/article/details/53189214
refer: http://docs.spring.io/spring-data/jpa/docs/1.3.0.RELEASE/reference/html/jpa.repositories.html