我正在使用Hibernate 3。
我的问题是,如何使用Hibernate或HQL使用单个插入查询优化多个插入查询或触发多个查询。
我已经浏览了以下链接:
how to make HQL that will generate SQL to insert multiple values in one statement?
我发现我的问题略有不同。我的疑问是:
INSERT INTO scoring.table_a (a_id, a_name) VALUES (1, 'a');
INSERT INTO scoring.table_a (a_id, a_name) VALUES (2, 'b');
....
...
..
INSERT INTO scoring.table_a (a_id, a_name) VALUES (1000, 'd');
多个列的值集合不同。不是单列。输入的值也是计算出来的。不是直接从某些表中获取的。所以INSERT INTO... SELECT
也是,我可能无法使用。因为据我所知,INSERT INTO... SELECT
从另一个表中提取数据。
我也读过有关批量处理的内容,但这也会触发多个插入查询,我不想使用它。
希望有人能帮助我。
答案 0 :(得分:0)
我建议您使用像
这样的hibernate实体@Entity(name = table_a)
public class TableAEntity{
@id
@Column(name="a_id")
String aId;
@Column(name = "a_name")
String aName;
public TableAEntity(String aId, String aName){
this.aId=aid;
this.aName =aName;
}
// Getter setter for column aId, aName
}
然后你可以像往返一样更新,例如here
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
TableAEntity entity= new TableAEntity(.....);
session.save(entity);
}
tx.commit();
session.close();
在同一链接上提供了更多方法。