Вставьте и обновите данные в таблице, используя Java Persistence Query Language

1

Мне нужно обновить и вставить данные в таблицу, используя Java Query Language. Вот мой код класса 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);
    }
  • 1
    В чем проблема? некоторые исключения?
  • 0
    Где другие классы и что вы пробовали до сих пор?
Показать ещё 1 комментарий
Теги:
hibernate

2 ответа

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=var и set BC_ORDER_NO ='A'. SapOrderHDR - класс сущности таблицы

  • 0
    Не делайте этого, это уязвимо для SQL-инъекций ( en.wikipedia.org/wiki/SQL_injection ), BC_ORDER_NO = :no используйте BC_ORDER_NO = :no и q.setParameter("no", bcOrderNo) .
0

Во-первых, если вы используете @Autowired annotation setter/getteer они setter/getteer. В вашем случае вы должны сделать что-то вроде этого:

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

И окружайте его конструкцией try/catch.

  • 0
    Резервные? ты имеешь в виду неуместный?
  • 0
    Избыточный и ненужный не синонимы?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню