Database 从数据库中删除数据时出现问题

Database 从数据库中删除数据时出现问题,database,hibernate,postgresql,Database,Hibernate,Postgresql,我正在使用Hibernate访问我的数据库。我想删除一组关于条件函数的字段。我的数据库是PostgreSQL,我的Java代码是: public void deleteAttr(String parameter){ Configuration cfg = new Configuration(); cfg.configure(resource.getString("hibernate_config_file")); SessionFactory sessionFactory

我正在使用Hibernate访问我的数据库。我想删除一组关于条件函数的字段。我的数据库是PostgreSQL,我的Java代码是:

public void deleteAttr(String parameter){
    Configuration cfg = new Configuration();
    cfg.configure(resource.getString("hibernate_config_file"));
    SessionFactory sessionFactory = cfg.buildSessionFactory();
    session = sessionFactory.openSession(); 
    Transaction tx = session.beginTransaction();
    tx.begin();
    String sql = "delete from attribute where timestamp > to_date('"+parameter+"','YYYY-MM-DD')"
    session.createSQLQuery(sql);
    tx.commit();
}
该方法运行,但不会从数据库中删除数据。我还检查了PgAdmin中的sql语句,它可以工作,但代码中没有。为什么?有人帮我吗


提前谢谢

这是因为您正在创建一个查询,但没有执行它:

String sql = "delete from attribute where timestamp > to_date('"+parameter+"','YYYY-MM-DD')"
Query query = session.createSQLQuery(sql);
query.executeUpdate();

您应该真正使用绑定命名参数而不是字符串串联来传递查询中的参数:它通常更有效,更健壮,但最重要的是,它不会打开SQL注入攻击的大门。

谢谢!当您说绑定命名参数时,您想说什么?我认为使用标准和限制类…阅读。