使用Java持久性查询语言在表中插入和更新数据

时间:2014-08-11 13:07:38

标签: java sql hibernate

我需要使用Java持久性查询语言在表中更新和插入数据。这是我的DAO类代码:

public class ApprovalDao {


    @Autowired
    private SessionFactory sessionFactory;


    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }
    public void addEntity(EntityValues entity) {
        getSessionFactory().getCurrentSession().save(entity);
    }


    public void deleteEntityValue(EntityValues entity) {
        getSessionFactory().getCurrentSession().delete(entity);
    }

2 个答案:

答案 0 :(得分:0)

首先,如果您使用@Autowired注释setter/getteer方法是多余的。在你的情况下,你应该这样做:

session = sessionFactory.openSession();
session.beginTransaction();
session.update(user);
session.getTransaction().commit();

try/catch构造包围它。

答案 1 :(得分:0)

用于更新表格中的字段数据:

public void updateField(){
    Query q=getSessionFactory().getCurrentSession().createQuery(
        " update SapOrderHDR set
            SAP_ORDER_STATUS = 'A' where BC_ORDER_NO='" + bcOrderNo + "'");
    q.executeUpdate();
}

此查询将更新BC_ORDER_NO=varset BC_ORDER_NO ='A'的表格。  SapOrderHDR是表实体类