[Hibernate-JIRA] Created: (HHH-6473) Hibernate hbm2ddl doesn't create Indexes from @Index annotations on @ManyToMany relations
by Samuel Mendenhall (JIRA)
Hibernate hbm2ddl doesn't create Indexes from @Index annotations on @ManyToMany relations
-----------------------------------------------------------------------------------------
Key: HHH-6473
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6473
Project: Hibernate Core
Issue Type: New Feature
Components: annotations
Affects Versions: 4.0.0.Beta4
Reporter: Samuel Mendenhall
Fix For: 4.x
When generating the SQL schema with Hibernate using the hbm2ddl feature the generation of indexes on ManyToMany relationships like the following is not working:
@ManyToMany()
@JoinTable(name = "REL_FOO_BAR", joinColumns = @JoinColumn(name = "FOO_FK"), inverseJoinColumns = @JoinColumn(name = "BAR_FK"))
@Index(name = "FOO_BAR_IDX")
The created SQL schema doesn't include an index named USER_ROLES_IDX. With other relation types (ManyToOne, etc.) the index is created as expected.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 5 months
[Hibernate-JIRA] Created: (HHH-2223) BatchFetchQueue.getXXXBatch() cache check impeding batch fetching
by Joel Caplin (JIRA)
BatchFetchQueue.getXXXBatch() cache check impeding batch fetching
-----------------------------------------------------------------
Key: HHH-2223
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2223
Project: Hibernate3
Type: Bug
Components: core
Versions: 3.2.0.ga
Environment: 3.2.0GA, Mac OS X/Solaris 10, Sybase 12.5/HSQLDB
Reporter: Joel Caplin
Priority: Minor
Attachments: testcase.tar
I have attached a test case which demonstrates the issue at hand by implementing a cheap data model: Pub >---|- Manager -|--< Employee
Pub and Employee are uncached; Manager is cached (tried under both Eh and the non-prod HashMap implementation). All associations are lazy. The test case has a default batch size of 10 and uses hsqldb to demonstrate the problem - which was diagnosed against Sybase.
When BatchFetchQueue.getXXXBatch() is invoked, it does not load any objects it finds in the second level cache - it merely acknowledges their presence by logging to INFO (isCached()). This in turn means that any child associations in that cached object will not have a proxy created for them.
Suppose we want to find all the employees of the pubs in our database. We choose to do this by loading all the Pubs ("FROM Pub") and calling thePub.getManager().getEmployees() iteratively.
When the managers are in the second level cache, Hibernate issues 11 select statements: one to load the pubs and one for each distinct manager.
When the Managers are not in the cache, Hibernate issues 3 select statements: one to load the pubs, one to load the managers and one to load the employees.
A solution might be to load the object from the cache instead of just ignoring it?
--
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
13 years, 5 months
[Hibernate-JIRA] Created: (HHH-6317) Retrieving
by Clint Popetz (JIRA)
Retrieving
-----------
Key: HHH-6317
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6317
Project: Hibernate Core
Issue Type: Bug
Components: envers
Affects Versions: 3.6.5
Reporter: Clint Popetz
For the following mapping:
{code}
public class AnEntity extends HibernatePersistedObject {
@Id
@GeneratedValue
private Long id;
@OneToOne(optional=false,mappedBy="anEntity")
private TargetEntity target;
}
public class TargetEntity {
@Id
@GeneratedValue
private Long id;
@ManyToOne
private AnEntity anEntity;
}
{code}
and the following query:
{code}
AuditReaderFactory.get(em).createQuery().
forRevisionsOfEntity(AnEntity.class,false,false).
add(AuditEntity.id().eq(id)).addOrder(AuditEntity.revisionNumber().desc()).
setMaxResults(1).getSingleResult()
{code}
I get an NPE because the there is no EntityConfiguration for TargetEntity, as it is not audited:
{noformat}
java.lang.NullPointerException
at org.hibernate.envers.query.impl.EntitiesAtRevisionQuery.list(EntitiesAtRevisionQuery.java:81)
at org.hibernate.envers.query.impl.AbstractAuditQuery.getSingleResult(AbstractAuditQuery.java:108)
at org.hibernate.envers.entities.mapper.relation.OneToOneNotOwningMapper.mapToEntityFromMap(OneToOneNotOwningMapper.java:82)
at org.hibernate.envers.entities.mapper.MultiPropertyMapper.mapToEntityFromMap(MultiPropertyMapper.java:118)
at org.hibernate.envers.entities.EntityInstantiator.createInstanceFromVersionsEntity(EntityInstantiator.java:100)
at org.hibernate.envers.query.impl.RevisionsOfEntityQuery.list(RevisionsOfEntityQuery.java:135)
at org.hibernate.envers.query.impl.AbstractAuditQuery.getSingleResult(AbstractAuditQuery.java:108)
{noformat}
--
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
13 years, 5 months