Hibernate OnDelete Cascade не работает для MySql, но работает на postgres и Ms-Sql

У меня есть 2 сущности.Нить сущность иСообщение объект, использующий отображение OnetoOne изПост-> Тема.

A Нить сущность содержит множествоСообщений, Я знаю, что должен был использовать OnetoMany вместо OnetoOne, но чтобы избежать всех проблем с коллекциями, я использую OnetoOne

Теперь проблема в том, когда я удаляюНитьвсесообщение связанный с ним также должен быть удален. Я успешен в этом, используя

@OnDelete(action = OnDeleteAction.CASCADE)

Но это работает только на Postgres и Ms-SQl, но не на MySql (также пробовал InnoDb).на каскаде удаления не генерируется в запросе генерации схемы.

Ниже приведен код

//Thread Entity
@Id
@GeneratedValue
@Column(name = "thread_id")
private int ThreadID;
//Post Entity
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "post_id")
private int PostID;

@OneToOne()
@OnDelete(action = OnDeleteAction.CASCADE)
private thread ThreadID;

При удалении элемента изНить объект, используя следующий запрос

session.delete(session.load(thread.class,1));

02 сентября 2014 г. 20:33:51 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ПРЕДУПРЕЖДЕНИЕ: ошибка SQL: 1451, SQLState: 23000 сент. 02, 2014 20:33:51 org.hibernate.engine.jdbc. spi.SqlExceptionHelper logExceptions ОШИБКА: невозможно удалить или обновить родительскую строку: ограничение внешнего ключа не выполняется (forum.post_tbl, ОГРАНИЧЕНИЕFK_bfbv5nknqj7ppd5630scimhtb ИНОСТРАННЫЙ КЛЮЧ (ThreadID_thread_id) РЕКОМЕНДАЦИИthread_tbl (thread_id)) org.hibernate. 49) в org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert (SqlExceptionHelper.java:125) в org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert (SqlExceptionHelper.java:1iber) в org.h Домен (AbstractEntityPersister.java:3343) в org.hibernate.persister.entity.AbstractEntityPersister.delete (AbstractEntityPersister.java:3546) в org.hibernate.action.internal.EntityDeleteAction.execute (EntityDeleteAction.java.hiber. Org. At. engine.spi.Acti onQueue.execute (ActionQueue.java:377) в org.hibernate.engine.spi.ActionQueue.executeActions (ActionQueue.java:369) в org.hibernate.engine.spi.ActionQueue.executeActions (ActionQueue.java:293 at или .hibernate. : 1234) в org.hibernate.internal.SessionImpl.managedFlush (SessionImpl.java:404) в org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit (JdbcTransaction.java:1iber) в org.h транзакция.spi.AbstractTransactionImpl.commit (AbstractTransactionImpl.java:175) в test.main (test.java:84), вызванная: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: не удается удалить или обновить родительскую строку: чужой ключевое ограничение не выполняется (forum.post_tbl, ОГРАНИЧЕНИЕFK_bfbv5nknqj7ppd5630scimhtb ИНОСТРАННЫЙ КЛЮЧ (ThreadID_thread_id) РЕКОМЕНДАЦИИthread_tbl (thread_id)) HibernateException: не удалось выполнить оператор в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) в sun.reflect.DnccessorImpl. на java.lang.reflect.Constructor.newInstance (Constructor.java:408) на com.mysql.jdbc.Util.handleNewInstance (Util.java:411) на com.mysql.jdbc.Util.getInstance (Util.java:386 ) по адресу com.mysql.jdbc.SQLError.createSQLException (SQLError.java:1040) по адресу com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:4120) по адресу com.mysql.jdbc.Mysqll.j.jj ( 4052) на com.mysql.jdbc.MysqlIO.sendCommand (MysqlIO.java:2503) на com.mysql.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:2664) на com.mysql.jdbc.ConnectionImpava.exe. : 2794) на com.mysql.jdbc.PreparedStatement.executeInternal (PreparedStatement.java:2155) на com.mysql.jdbc.PreparedStatement.executeUpda te (PreparedStatement.java:2458) по адресу com.mysql.jdbc.PreparedStatement.executeUpdate (PreparedStatement.java:2375) по адресу com.mysql.jdbc.PreparedStatement.executeUpdate (PreparedStatement.jnate.g.b2) .internal.ResultSetReturnImpl.executeUpdate (ResultSetReturnImpl.java:133) ... еще 14 BUILD SUCCESSFUL (общее время: 2 секунды)

Пожалуйста, помогите мне найти выход из этого.

Ответы на вопрос(1)

Ваш ответ на вопрос