2017-09-02 110 views
0

我试过了,但找不到正确的答案,请帮我一下吗? 表正在创建,但数据没有被插入。我修正了上述错误,但数据没有插入到Hibernatetemplate的save()中。HibernateTemplate save()没有将数据插入到数据库中弹出

+0

调用saveOrUpdate()方法而不是save()并检查你的类实现Serializable –

+0

欢迎使用stackoverflow。请,你能提供一些你的具体问题的代码吗?这可以证明你尝试了多远,它会帮助其他成员更好地理解你的问题,当时,你会给他们一个你的问题的背景。请检查以下链接:https://stackoverflow.com/help/mcve和https://stackoverflow.com/help/how-to-ask –

+0

@PankajMandale使用saveOrUpdate并不是一个好的做法。你应该知道你是否正在创建或更新一行。将它留给Hibernate比较慢,可能会导致架构问题。 –

回答

0
@Transactional(propagation=Propagation.REQUIRED,readOnly=false) 
public class StudentDaoImplHT implements StudentDao { 

    private HibernateTemplate ht; 
    public void setHt(HibernateTemplate ht) { 
     this.ht = ht; 
    } 
    @Transactional 
    @Override 
    public int save(Student st) { 
    int i=(Integer) ht.save(st);; 


    System.out.println(st.getId()); 
     System.out.println(st.getAddress()); 
     System.out.println(st.getEmail()); 
     System.out.println(st.getName()); 



      return i; } 
    @Override 
    public boolean update(Student st) { 
     ht.saveOrUpdate(st); 
     return true; 
    } 
    @Override 
    public boolean delete(Student st) { 
     //ht.delete(st); 
     return true;  
} 
@Override 
    public Student findByPK(int id) { 
    Student std=(Student) ht.get(Student.class, id); 
    return std; 
    } 
@Override 
    public List<Student> findByAllUsingHQL() { 
     List<Student> list=(List<Student>) ht.find("from Student"); 
     return list; 
    } 
    @Override 
    public List<Student> findByAllUsingCriteria() { 
     DetachedCriteria dc=DetachedCriteria.forClass(Student.class); 
     //dc.setProjection(projection); 
     //ht.findByCriteria(criteria) 
     List<Student> list= (List<Student>) ht.findByCriteria(dc); 
     return null; 
    } 
}