hibernate 3.5で次の操作を実行するにはどうすればよいですか
INSERT INTO Table (Column1, Column2 ) VALUES
(Value1, Value2), (Value1, Value2)
hibernate 3.5で次の操作を実行するにはどうすればよいですか
INSERT INTO Table (Column1, Column2 ) VALUES
(Value1, Value2), (Value1, Value2)
ステートレス セッションの使用を検討することをお勧めします。ただし、返される結果 (この場合は顧客) は分離されているため、注意してください。
http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/batch.html#batch-statelesssession
StatelessSession session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();
ScrollableResults customers = session.getNamedQuery("GetCustomers")
.scroll(ScrollMode.FORWARD_ONLY);
while ( customers.next() ) {
Customer customer = (Customer) customers.get(0);
customer.updateStuff(...);
session.update(customer);
}
tx.commit();
session.close();
以下のリンクで解決策を得ることができます。
http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/batch.html
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hqlInsert = "insert into DelinquentAccount (id, name) select c.id, c.name from Customer c where ...";
int createdEntities = s.createQuery( hqlInsert )
.executeUpdate();
tx.commit();
session.close();