外部制約で例外を発生させているコレクション型を持つhibernate deleteでスタックしました。ここで文字列型コレクションでhibernate deleteを実行します
は私のHibernateのテーブル
@Entity
@Table
public class FrontRequest implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long tutorfront_id;
@Column
private String tutorialType;
@Column
private String tutorialLevel;
@ElementCollection(fetch=FetchType.EAGER)
@Fetch(value = FetchMode.SELECT)
private Collection<String> tutorialSubjects= new HashSet<String>();
@Column
private String tutorialCity;
@Column
private String noOfStudent;
@Column
private String classWeek;
@Column
private String tutionFee;
@Column
private String tutionFeerate;
@Column
private String tutorSex;
@Column
private String tutorEducation;
@Column
private Date postingDate;
@Column
private String studentSchool;
}
、ここでは、オブジェクト
public boolean removeFrontRequest(Long id) {
// TODO Auto-generated method stub
Session session= SessionFactoryImpl.returnService().getCurrentSession();
Transaction tx;
if(session.getTransaction() != null
&& session.getTransaction().isActive()){
tx=session.getTransaction();
}
else{
tx= session.beginTransaction();
}
try{
Query query=session.createQuery("from FrontRequest where tutorfront_id =:id");
query.setParameter("id", id);
FrontRequest frontRequest=(FrontRequest) query.list().get(0);
session.delete(frontRequest);
if(!tx.wasCommitted()) {
tx.commit();
}
}
catch(Exception e){
return false;
}
return true;
}
を削除するには、私のサービスメソッドである。しかし、それはロックで例外を与えている: SQLエラー:1205、SQLStateの:40001 ロック待ちタイムアウトを超えました。トランザクションを再開してみてください
私が間違っていることをお考えできますか?ここをクリック。
ありがとうございました
[こちらの投稿をご覧ください](http://stackoverflow.com/questions/5836623/getting-lock-wait-timeout-exceeded-try-restarting-transaction-even-though-im)助けてください。 – rcyza
他のいくつかのプロセスは、削除しようとしているテーブルまたはレコードをロックしています。それが何であるかを見つけてそれをやめる。 [ここ](http://www.coderanch.com/mobile/t/447114/ORM/databases/Error-Deleting-Persisted-Objects-Hibernate?foo=a)を読んでください。 –