query.executeUpdate()在hibernate中为create table查询返回什么

时间:2015-12-14 05:52:41

标签: hibernate

String sql="create table temptable (name varchar(2 Byte))";
    Transaction tx=session1.beginTransaction();
    Query query=session1.createSQLQuery(sql);
    int a=query.executeUpdate();

    System.out.println(a);tx.commit();

为什么即使在成功创建表并且还使用drop table查询之后它也会打印0。虽然声明它返回更新或删除的实体数,但它不能返回1?

2 个答案:

答案 0 :(得分:4)

它返回受影响的行数。在您的情况下,不会更新/删除任何行,这就是它返回0的原因。

executeUpdate()应该用于在实体上执行更新或删除语句,而不是用于DDL查询。

答案 1 :(得分:2)

表创建和删除在技术上不会影响任何数据库实体;因此,为什么它返回0.只有在INSERT,UPDATE和DELETE期间,您才会看到非零值。