3

hibernate 3.5で次の操作を実行するにはどうすればよいですか

INSERT INTO Table (Column1, Column2 ) VALUES
(Value1, Value2), (Value1, Value2)
4

2 に答える 2

1

ステートレス セッションの使用を検討することをお勧めします。ただし、返される結果 (この場合は顧客) は分離されているため、注意してください。

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();
于 2013-01-09T14:52:59.783 に答える
0

以下のリンクで解決策を得ることができます。

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();
于 2012-10-19T06:28:35.573 に答える