def update_deleted(key):
es_client = Elasticsearch(hosts=ES_HOST, timeout=5000)
es_client.update_by_query(index='{}_{}'.format("index_name", '*'), body={
"script": {
"inline": "ctx._source.deletedYN = 'true'"
},
"query": {
"bool": {
"must": [
{
"term": {
"_type": 'docs'
}
},
{
"term": {
"key": key
}
}
]
}
}
})
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.ObjectDeletedException: deleted instance passed to merge: 위와 같은 에러가 발생... em.remove(user)를 호출하면 user는 영속성 컨텍스트에서 제거된다. (Object is already marked for being deleted) 이후 트랜잭션을 커믹해서 플러시를 호출하면 실제 데이터베이스에 삭제 쿼리를 전달한다. 하지만 삭제된 엔티티를 한 트랜잭션내에서 다시 삭제할려고하면 해당 익셉션이 발생한다. 참조 : 자바 ORM 표준 JPA 프로그래밍
댓글
댓글 쓰기