[hibernate-issues] [Hibernate-JIRA] Created: (HCANN-30) EntityBinder: Incorrect WARN message about dynamicUpdate ("Entity used on a non root entity: ignored for...")

Shahaf Abileah (JIRA) noreply at atlassian.com
Sat Dec 4 12:51:13 EST 2010


EntityBinder: Incorrect WARN message about dynamicUpdate ("Entity used on a non root entity: ignored for...")
-------------------------------------------------------------------------------------------------------------

                 Key: HCANN-30
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HCANN-30
             Project: Hibernate Commons Annotations
          Issue Type: Bug
            Reporter: Shahaf Abileah
            Priority: Minor


This my first bug so please excuse any mistakes I make in filing it, and help me correct them.

I'm using PostgreSQL.  I have a bunch of domain objects.  Some of them are small class hierarchies.  I chose to map each class hierarchy to a single table using a discriminator column.  Here's one example where I have a base class (Note) and a subclass (TaskNote)...

@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Table(name = "notes")
@SequenceGenerator(name = "notes_note_id_seq", sequenceName = "notes_note_id_seq", allocationSize = 1)
@Proxy(lazy = true)
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@SQLDelete(sql="update notes set removed = true where note_id = ?")
@DiscriminatorColumn(
    name=Note.noteTypeColumnName,
    discriminatorType=DiscriminatorType.INTEGER
)
public abstract class Note implements Persistable {
...
}

@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Proxy(lazy = true)
@DiscriminatorValue("1")
public class TaskNote extends Note {
...
}

Notice that I added the following annotation to both: @org.hibernate.annotations.Entity(dynamicUpdate = true)

I did this because I want to keep my updates lean.

After adding this annotation I started seeing warnings in my log:

2010-11-01 10:03:22,210 WARN  org.hibernate.cfg.annotations.EntityBinder @org.hibernate.annotations.Entity used on a non root entity: ignored for redfin.core.domain.TaskNote

I spent some time experimenting with this annotation to understand how it works with class hierarchies.  I discovered that:

* If I put the annotation on the child class and not on the parent class, then I get the WARN but dynamicUpdate still works
* If I put the annotation on the parent class and not the child class, then the WARN goes away but dynamicUpdate does not work
* If I put the annotation on both, then the WARN is there and dynamicUpdate works

To me this implies that the WARN is incorrect.  Do you agree?

I believe this is the code that is generating the message:
http://www.docjar.com/html/api/org/hibernate/cfg/annotations/EntityBinder.java.html

Here are the particular versions of the various hibernate libraries that I'm using:

            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>3.0.0.ga</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate</artifactId>
                <version>3.2.7.ga</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-annotations</artifactId>
                <version>3.3.0.ga</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-commons-annotations</artifactId>
                <version>3.3.0.ga</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>antlr</artifactId>
                <version>2.7.5H3</version>
            </dependency>


-- 
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