[hibernate-issues] [Hibernate-JIRA] Assigned: (HHH-5087) A @ManyToOne field on the same entity class is null when 2nd level cache is enabled
Gail Badner (JIRA)
noreply at atlassian.com
Thu Apr 8 17:25:42 EDT 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gail Badner reassigned HHH-5087:
--------------------------------
Assignee: Gail Badner
> A @ManyToOne field on the same entity class is null when 2nd level cache is enabled
> -----------------------------------------------------------------------------------
>
> Key: HHH-5087
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5087
> Project: Hibernate Core
> Issue Type: Bug
> Components: caching (L2)
> Affects Versions: 3.3.0.CR1, 3.5.0-Final
> Reporter: Joseph Pachod
> Assignee: Gail Badner
> Attachments: demos.tar.gz
>
>
> The issue is based on this discussion https://forum.hibernate.org/viewtopic.php?p=2350265 which shows how to have a List with the index managed by Hibernate.
> The example given involves two distinct entities classes, for example ParentEntity.class et ChildEntity.class.
> I tried to use it as well for a List containing the same entity, like that (see attachment for more details):
> public class RecursiveListItem
> {
> (..)
> public void setParent(final RecursiveListItem parent)
> {
> this.parent = parent;
> }
> public RecursiveListItem getParent()
> {
> return parent;
> }
> public static final String RECURSIVELISTITEM_ONETOMANY_INDEX_COLUMN_NAME = "recursivelistitem_position";
> public static final String RECURSIVELISTITEM_ONETOMANY_JOIN_COLUMN_NAME = "recursivelistitem_id";
> @ManyToOne
> @JoinColumn(name = RECURSIVELISTITEM_ONETOMANY_JOIN_COLUMN_NAME, insertable = false, updatable = false)
> private RecursiveListItem parent;
> @SuppressWarnings("unused")
> @Column(name = RECURSIVELISTITEM_ONETOMANY_INDEX_COLUMN_NAME, insertable = false, updatable = false)
> private Integer position;
> @OneToMany(fetch = FetchType.LAZY)
> @JoinColumn(name = RecursiveListItem.RECURSIVELISTITEM_ONETOMANY_JOIN_COLUMN_NAME)
> @org.hibernate.annotations.IndexColumn(name = RecursiveListItem.RECURSIVELISTITEM_ONETOMANY_INDEX_COLUMN_NAME)
> private List<RecursiveListItem> children = new ArrayList<RecursiveListItem>();
> (...)
> }
> In my test case, I do :
> EntityManager entityManager = entityManagerFactory.createEntityManager();
>
> RecursiveListItem parent = new RecursiveListItem();
> RecursiveListItem child = new RecursiveListItem();
>
> persist(entityManager, parent);
> persist(entityManager, child);
>
> parent.getChildren().add(child);
> child.setParent(parent);
>
> persist(entityManager, parent);
> persist(entityManager, child);
>
> entityManager.close();
>
> entityManager = entityManagerFactory.createEntityManager();
> RecursiveListItem childFound = entityManager.find(RecursiveListItem.class, child.getId());
> assertNotNull(childFound);
> assertNotNull(childFound.getParent());
> The last line works when the 2nd level cache and fails otherwise.
> The issue applies both for 3.5 and 3.3.0.CR1. In the attached file I put two maven enabled eclipse projects, on for 3.5 and one for 3.3.0.CR1.
> Thanks in advance
> best regards
> joseph
> ps : I'll be on vacation until next Monday (April 12)
--
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.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list