2017-09-02 115 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; 
    } 
}