SpringMVC +Hibernate JPA+Spring-data-jpa

 公司用SpringMVC +Hibernate JPA+Spring-data-jpa 开发。之前没有用过Spring-data-jpa 就想简单用下。
          
applicationContext.xml配置如下:



	Spring公共配置 
	
	

	

	
		
		
	

	
	
		
		
		
		
		

		
		
		
		
		
		
		
	



	
	
		
		
		
		
			
				org.hibernate.cfg.ImprovedNamingStrategy
				true
				update
			
		
	

	
	
		
	

	
	
		
	

	
	
	
	
	
	
	

	
	
	
	

	
	
		
	
	
	
		
	
	
	
		

	


spring-servlet.xml 配置如下





     
     	
	

	
	
     
     
     
     
	
		
		
	
     
     
     
     
 
     
         
             /WEB-INF/jsp/
         
         
             .jsp
         
     

web.xml 如下



  Archetype Created Web Application
  
    log4jConfigLocation
    classpath*:/log4j.xml
  
  
    contextConfigLocation
    classpath*:/applicationContext*.xml
  
  
  
  
	spring.profiles.default
	development
  
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
	
		characterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
		
			forceEncoding
			true
		
	
	
  
  
    DispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
    	contextConfigLocation
    	classpath*:/spring-servlet.xml
    
    1
  
  
    DispatcherServlet
    /
  
  
  
    /index.jsp
  

实体User

package com.csair.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="i_user")
public class User {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String username;
	private String password;
	
	@Id
	@GeneratedValue(generator="system-uuid")
	@GenericGenerator(name="system-uuid",strategy="uuid")
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	
	@Column(name="username")
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	
	@Column(name="password")
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}


UserRepository 类如下:

package com.csair.repository;

import org.springframework.data.jpa.repository.JpaRepository;

import com.csair.entity.User;

public interface UserRepository extends JpaRepository{
	
}

UserService 接口

package com.csair.service;

import com.csair.entity.User;

public interface UserService {
    public User getUser(int id);
}


接口实现类

package com.csair.service.Impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.csair.entity.User;
import com.csair.repository.UserRepository;
import com.csair.service.UserService;
@Service
public class UserServiceImpl implements UserService {
    @Autowired
	UserRepository repository;
	public UserRepository getRepository() {
		return repository;
	}
	@Override
	public User getUser(int id) {
		// TODO Auto-generated method stub
		return repository.findOne(id);
	}

}

Controller 类如下:

package com.csair.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.csair.entity.User;
import com.csair.service.UserService;

@Controller
@RequestMapping(value="/user")
public class UserController {
   @Autowired
   private UserService userSerivce;
   @RequestMapping(value="/welcome")
   public ModelAndView getUser(ModelAndView modelView)
   {
	   User user = userSerivce.getUser(1);
	    return new ModelAndView("welcome","user",user);
   }
}
 
  


关于jsp 页面就不贴了 
以上基本就是 SpringMVC +Hibernate JPA+Spring-data-jpa 开发环境集成。
但是 问题来了:
java.lang.ClassNotFoundException: org.springframework.data.mapping.IdentifierAccessor
这个错网上很难找到答案,多数是说程序或者配置有问题。这个我自己也纠结了很久。不过最终还是解决了。
这个问题主要是
spring-data-commons.jar
spring-data-jpa.jar 版本依赖问题。
一般很难发现这个问题,因为版本就算依赖有问题也编译时代码不会报错,只有在发布的时候会报错。
 我遇到这个问题是因为我知道要以上两个包就去spring官网去下载 ,下载的时候没有考虑到版本依赖问题,后来程序跑不起来,总以为是自己配置有问题。然后各种改配置仍然不行。最后想了很久用了maven来下载包,依赖问题解决了。 这里建议如果在依赖不明的情况下,用maven下载包。这样就不会出现因为包依赖问题导致程序跑不起来,浪费自己的时间。
最后给一下实例地址
http://download.csdn.net/detail/lj1314ailj/8943455

你可能感兴趣的:(SpringMVC,+Hibernate,Spring-data-jpa,Spring4,Hibernate)