Java 使用单个或优化查询的批量插入

Java 使用单个或优化查询的批量插入,java,mysql,sql-server,hibernate,hql,Java,Mysql,Sql Server,Hibernate,Hql,我正在使用Hibernate3 我的问题是,如何使用Hibernate或HQL优化多个插入查询或使用单个插入查询触发多个查询 我已经浏览了以下链接: 我发现我的问题略有不同。我的问题是: 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.ta

我正在使用Hibernate3

我的问题是,如何使用Hibernate或HQL优化多个插入查询或使用单个插入查询触发多个查询

我已经浏览了以下链接:

我发现我的问题略有不同。我的问题是:

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');
多个列的值集不同&而不是单个列。此外,输入的值是计算出来的&不是直接从某个表中获取的。所以
插入到。。。同时选择
,我可能无法使用。因为据我所知,
插入到。。。选择
从另一个表中获取数据

我也读过有关批处理的内容,但这也会引发多个插入查询,我不想使用这些查询


希望任何人都能帮助我。

我建议您在这里使用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
}
然后,您可以使用类似于go中的更新的东西,例如

Session Session=sessionFactory.openSession();
事务tx=会话.beginTransaction();

对于(inti=0;我知道这个
插入MyTable(FirstCol,SecondCol)吗选择“First”,1 UNION ALL选择“Second”,2 UNION ALL选择“Third”,3
@RabNawaz感谢您的快速回复。我不知道这个查询。但根据您的建议,我在网上搜索并发现,这个查询是纯SQL。您能告诉我如何将其转换为HQL吗?这会触发一个插入查询还是多个插入查询?
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();