[
http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-605?pag...
]
Sanne Grinovero commented on HSEARCH-605:
-----------------------------------------
Hello, could you please provide a unit test, so we can exactly reproduce what you're
doing. As in Hibernate you have to update both ends of the relation, Search's
@ContainedIn is not meant to remove this requirement.
@ContainedIn does not work on deletes.
--------------------------------------
Key: HSEARCH-605
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-605
Project: Hibernate Search
Issue Type: Bug
Components: engine
Affects Versions: 3.2.1
Reporter: Kyrill Alyoshin
So, let's say we have a @Indexed entity Vendor (the parent) that is in a
bi-directional @OneToMany relationship with entity Address (the child). Vendor maps the
collection of Address'es as @IndexedEmbedded. Address is NOT @Indexed but does map its
parent vendor association as @ContainedIn.
Whenever Address entity is retrieved and session.delete'ed, the parent Vendor's
index is NOT updated. Everything works fine with update operations.
This obviously happens because the collection of addresses in parent vendor still
contains the deleted address. (If the deleted address is manually removed from collection,
everything works fine).
Now... I realize that it is not in Hibernate style to automatically severe the
association when a child entity is deleted. However, it seems that Hibernate Search should
provide such functionality. This does lead to very subtle, hard to diagnose bugs. I assume
when Vendor's collection is flushed it is fairly trivial to detect which addresses
have been deleted and which not (inside the listener).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira