Hibernate 在Spring MVC中插入不工作 我的问题:

Hibernate 在Spring MVC中插入不工作 我的问题:,hibernate,spring-mvc,Hibernate,Spring Mvc,我创建了一个使用Hibernate的Spring MVC应用程序。 正在创建我的表Person,但是没有插入我从视图中提供的数据。我浏览了很多网站,但没有指出我的错误 这是我的档案: 这是我指定的HomeController 两个请求映射,一个用于根,另一个用于保存方法** package com.controller; @Controller public class MainController {

我创建了一个使用Hibernate的Spring MVC应用程序。
正在创建我的表
Person
,但是没有插入我从视图中提供的数据。我浏览了很多网站,但没有指出我的错误

这是我的档案: 这是我指定的HomeController 两个请求映射,一个用于根,另一个用于保存方法**

    package com.controller;   

    @Controller              
    public class MainController {           
        @Autowired            
        private PersonService ps;           
        @RequestMapping("/")   

        public String home() {
            return "index";         }

        @RequestMapping(value="/save",method=RequestMethod.POST)
        public String save(@ModelAttribute Person p) {
            ps.save(p);
            return "index";        
        }        
    }

这是persondao类,它包含save方法

    package com.dao;        
    import com.model.Person;        
    public interface PersonDAO {
        public void save(Person p);
    }

以下是DAO的实现:

    @Transactional
    @Repository
    public class PersonDAOImpl implements PersonDAO{
        @Autowired
        private SessionFactory sessionFactory;          
        public void save(Person p) {
            // TODO Auto-generated method stub
            Session s = sessionFactory.openSession();   
            sessionFactory.getCurrentSession();
        //  Transactional tx = (Transactional) s.beginTransaction();
            s.persist(p);
            s.flush();
            s.close();
        }       
    }

这是我的服务课

    package com.service;        

    import com.model.Person;        
    public interface PersonService {
        public void save(Person p);
    }

这是服务的serviceImpl

package com.service;  

@Service
public class PersonServiceImpl implements PersonService{
    @Autowired
    private PersonDAO pdao;     
    public void setPersonDAO(PersonDAO personDAO) {
        this.pdao = personDAO;      }

    @Transactional
    public void save(Person p) {
        // TODO Auto-generated method stub
        this.pdao.save(p);
    }       
}

最后,这是我的index.jsp

    <html>
        <head>
            <meta charset="utf-8">
            <title>Welcome</title>
        </head> 
        <body>
        <h2>Hello World!</h2>
            <form action="save" >
            <!-- id : <input type="text" name="id"> -->
            name : <input type="text" name="name"> <input type="submit"
                value="submit">
        </form>

        </body>
    </html>

欢迎
你好,世界!
姓名:

将注释
@Service
添加到
PersonDAO
。非常感谢!问题解决尽管几乎没有区别,但您必须使用
@Repository
@Service
注释用于服务层,
@Repository
用于DAO-oneAdd注释
@Service
PersonDAO
。非常感谢!问题解决尽管几乎没有区别,但您必须使用
@Repository
@Service
注释用于服务层,
@Repository
用于DAO层