java hibernate插入
我在网上看到了一个教程,其中显示您可以在Hibernate中执行类似的删除和更新操作:java hibernate插入,java,hibernate,insert,Java,Hibernate,Insert,我在网上看到了一个教程,其中显示您可以在Hibernate中执行类似的删除和更新操作: Query query = session.createQuery("delete Stock where stockCode = :stockCode"); query.setParameter("stockCode", "7277"); int result = query.executeUpdate(); 在同一教程中,我遇到了以下插入代码: Query query = session.createQ
Query query = session.createQuery("delete Stock where stockCode = :stockCode");
query.setParameter("stockCode", "7277");
int result = query.executeUpdate();
在同一教程中,我遇到了以下插入代码:
Query query = session.createQuery("insert into Stock(stock_code, stock_name)" +
"select stock_code, stock_name from backup_stock");
int result = query.executeUpdate();
我的问题是,是否可以使用setParameter
,像本教程中的delete示例那样执行插入方法?我尝试了类似的方法,但出现了一个错误:
Query q = session.createQuery("insert into test(:testname)");
q.setParameter("testname", "tester");
错误是关于属性的。我使用上述代码的原因之一是
int result = query.executeUpdate()
它可以返回一个结果,以验证是否通过SQL命令成功插入。首先:
设置参数
已为HQL查询中的参数而不是字段名创建
第二件事:
您的请求:insert-into-test(:testname)
似乎不完整,它应该类似于insert-into[TABLE\u-NAME]([FIELD\u-NAME],…)值([VALUE],…)
,在这种情况下,您应该使用SQL查询:
createSQLQueries
见:
。为什么需要使查询如此动态
如果保存,则插入数据库会更好:
session.save(youHibernateObject);
使用youHibernateObject,使用hibernate模型映射架构映射的对象。祝你好运。第一件事:
设置参数
已为HQL查询中的参数而不是字段名创建
第二件事:
您的请求:insert-into-test(:testname)
似乎不完整,它应该类似于insert-into[TABLE\u-NAME]([FIELD\u-NAME],…)值([VALUE],…)
,在这种情况下,您应该使用SQL查询:
createSQLQueries
见:
。为什么需要使查询如此动态
如果保存,则插入数据库会更好:
session.save(youHibernateObject);
使用youHibernateObject,使用hibernate模型映射架构映射的对象。祝你好运。sql语法可能有错误 首先是insert语句的SQL语法:
insert into <table_name> (col1, col2, col3)
values ('1', 'second value', 'third value')
因为您希望test_name的值是可配置的,所以您可以编写如下代码:
Query q = session.createQuery("insert into com.yourpackage.Test (test_name) values (:testname)");
q.setParameter("testname", "tester");
int result = query.executeUpdate()
其中com.yourpackage.Test是POJO实体类
另一方面,我不建议像这样使用hibernate。
最好使用save()方法:
要验证一切正常,请编写一个集成或JUnit测试
看看这个模式:
实施它,到处玩
祝您好运您的sql语法可能有错误 首先是insert语句的SQL语法:
insert into <table_name> (col1, col2, col3)
values ('1', 'second value', 'third value')
因为您希望test_name的值是可配置的,所以您可以编写如下代码:
Query q = session.createQuery("insert into com.yourpackage.Test (test_name) values (:testname)");
q.setParameter("testname", "tester");
int result = query.executeUpdate()
其中com.yourpackage.Test是POJO实体类
另一方面,我不建议像这样使用hibernate。
最好使用save()方法:
要验证一切正常,请编写一个集成或JUnit测试
看看这个模式:
实施它,到处玩
祝你好运请在Query.executeUpdate()中使用EntityManager.save()
executeUpdate返回更改的行数,并将返回一个持久性异常,但您不会被迫捕获它,并且可能会导致错误异常请使用EntityManager.save()插入Query.executeUpdate()中 executeUpdate返回更改的行数,并将返回一个持久性异常,但您不会被迫捕获它,它可能会导致错误的异常