2016-02-07 3 views
0

Так что я пытаюсь удалить объект спящего режима из базы данных, но он возвращает мне сообщение о том, что таблица не существует. Кажется, что у него нет проблем с поиском объекта и сохранением изменений или созданием новых объектов - он только жалуется при удалении объекта.Hibernate - таблица не существует во время удаления

Этот код приводит к ошибке, поскольку таблица не существует.

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

Этот код вытаскивает объект из базы данных и без проблем печатает идентификатор.

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 

Я понятия не имею, как это могло произойти, когда он вполне может ясно видеть таблицу при добавлении новых объектов и модернизацию существующих объектов. Может ли кто-нибудь объяснить, что здесь происходит?

Благодаря

+0

Это происходит в том же сеансе или в разных сеансах? –

+0

@ KenBekov его тот же код Я только что изменил эту одну строку, чтобы проверить, было ли это вернуть объект, который был – FMC

+0

Вы пытались удалить объект с помощью запроса HQL? –

ответ

0

Одно из возможных объяснений является то, что, возможно, вы бы, что ваш hibernate.hbm2ddl.auto установлен в create. Если это так, то, пожалуйста, измените его.

изменение:

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

в

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

в файле hibernate.cfg.xml.

Просьба указать ваш файл hibernate.cfg.xml, если он не был указан над решением. Тогда мы будем копать глубже в ваш код.

Смежные вопросы