【问题标题】:Hibernate - table doesn't exist during deletion休眠 - 删除期间表不存在
【发布时间】:2016-05-16 21:38:56
【问题描述】:

所以我试图从数据库中删除一个休眠实体,但它给了我一个错误,说该表不存在。查找实体并保存更改或创建新实体似乎没有任何问题 - 它只会在删除实体时抱怨。

此代码会导致错误提示该表不存在。

try
    {
        Transaction txn = s.beginTransaction();
        Resource r = (Resource) s.get(Resource.class, rid);
        s.delete(r);
        txn.commit();
    }

此代码将实体从数据库中拉出并打印 ID 没有问题。

try
    {
        Transaction txn = s.beginTransaction();
        Resource r = (Resource) s.get(Resource.class, rid);
        System.out.println(r.getId());
        txn.commit();
    }

控制台输出

Hibernate: 
    select
        resource0_.id as id1_1_0_,
        resource0_.bookable as bookable2_1_0_,
        resource0_.description as descript3_1_0_,
        resource0_.name as name4_1_0_ 
    from
        resources resource0_ 
    where
        resource0_.id=?
Hibernate: 
    delete 
    from
        resources_resources 
    where
        resources_id=?
2016-02-07 02:27:13.831  WARN 8396 --- [nio-8080-exec-8] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1146, SQLState: 42S02
2016-02-07 02:27:13.831 ERROR 8396 --- [nio-8080-exec-8] o.h.engine.jdbc.spi.SqlExceptionHelper   : Table 'bargaink_megtest.resources_resources' doesn't exist
2016-02-07 02:27:13.831  INFO 8396 --- [nio-8080-exec-8] o.h.e.j.b.internal.AbstractBatchImpl     : HHH000010: On release of batch it still contained JDBC statements

我不知道当它在添加新实体和更新现有实体时可以非常清楚地看到表格时会发生这种情况。谁能解释这里发生了什么?

谢谢

【问题讨论】:

  • 这是在同一会话中进行还是在不同会话中进行?
  • @KenBekov 它的代码相同,我只是更改了这一行以测试它是否正在恢复原来的实体
  • 您是否尝试使用 HQL 查询删除实体?
  • @KenBekov 刚刚尝试了 HQL,仍然返回相同的错误:/
  • 选择并删除生成的指向不同表的 SQL。检查班级。你有可能有2个不同的类(进口)吗?检查任何可能生成 SQL 的拦截器

标签: java mysql spring hibernate innodb


【解决方案1】:

一种可能的解释是,您可能会将您的hibernate.hbm2ddl.auto 设置为create。如果是这样,请更改它。

改变:

<property name="hibernate.hbm2ddl.auto">create</property>

<property name="hibernate.hbm2ddl.auto">update</property>

在您的 hibernate.cfg.xml 文件中。

如果上述解决方案不起作用,请发布您的 hibernate.cfg.xml 文件。然后我们将深入研究您的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2014-12-27
    相关资源
    最近更新 更多