java.lang.IllegalStateException: Property update has an unbound type and no explicit target entity.

Hibernate JIRA | Amelin Dmitry | 1 decade ago
  1. 0

    @Transient properties should probably always be ignored by Hibernate. In the case of this bug, it is not. Here's an example: public class Foo<T> { private int id; @Id public int getId() { return id; } public void setId(int id) { this.id = id; } @Transient public Foo<T> getFoo() { return this; } } The getFoo() method will cause the following error: Exception in thread "main" java.lang.IllegalStateException: Property moderationRuleHandler has an unbound type and no explicit target entity. at org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(AnnotationBinder.java:873) at org.hibernate.cfg.AnnotationBinder.getElementsToProcess(AnnotationBinder.java:727) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:561) at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:295) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:216) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1172) The code looks like this: for ( XProperty p : properties ) { if( !p.isTypeResolved() && !hasExplicitTargetEntity( p ) ) throw new IllegalStateException( "Property " + p + " has an unbound type and no explicit target entity."); final boolean currentHasIdentifier = addProperty( p, elements, localPropertyAccessor ); hasIdentifier = hasIdentifier || currentHasIdentifier; } It might need to be something like this instead: for ( XProperty p : properties ) { if(mustBeSkipped(p)) { continue; } if( !p.isTypeResolved() && !hasExplicitTargetEntity( p ) ) throw new IllegalStateException( "Property " + p + " has an unbound type and no explicit target entity."); final boolean currentHasIdentifier = addProperty( p, elements, localPropertyAccessor ); hasIdentifier = hasIdentifier || currentHasIdentifier; }

    Hibernate JIRA | 1 decade ago | Brian Lenz
    java.lang.IllegalStateException: Property moderationRuleHandler has an unbound type and no explicit target entity.
  2. Speed up your debug routine!

    Automated exception search integrated into your IDE

  3. 0

    When a collection is mapped using @ManyToOne or @CollectionOfElements, the entity in the collection is derived from the parametrised type of the collection. e.g. there is no need to explicitly indicate the elements of the following collection are books. @ManyToOne Set<Book> books; It would be nice if the same kind of discovery could be applied to Embeddable types when contained in a CollectionOfElements. E.g. it would be nice if Hibernate could derive that the embedded Versioned references a Book in the example below @CollectionOfElements Set<Versioned<Book>>; @Embeddable class Versioned<T> { T rightSide; Date date; } Even if it wasn't derived, it would be good to be able to specify it. Currently the only way to make the above work is to create a subclass of Versioned that explicitly binds the type parameter to Book. Without this the below exception is thrown while building the session factory Exception in thread "main" java.lang.IllegalStateException: Property rightSide has an unbound type and no explicit target entity. at org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(AnnotationBinder.java:946) at org.hibernate.cfg.AnnotationBinder.fillComponent(AnnotationBinder.java:1655) at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1054) at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:543) at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:484) at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43) at org.hibernate.cfg.annotations.CollectionBinder.bind(CollectionBinder.java:377) at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1476) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:706) at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:452) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:268) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1210)

    Hibernate JIRA | 1 decade ago | Edward Costello
    java.lang.IllegalStateException: Property rightSide has an unbound type and no explicit target entity.
  4. 0

    @Transient properties should probably always be ignored by Hibernate. In the case of this bug, it is not. Here's an example: public class Foo<T> { private int id; @Id public int getId() { return id; } public void setId(int id) { this.id = id; } @Transient public Foo<T> getFoo() { return this; } } The getFoo() method will cause the following error: Exception in thread "main" java.lang.IllegalStateException: Property moderationRuleHandler has an unbound type and no explicit target entity. at org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(AnnotationBinder.java:873) at org.hibernate.cfg.AnnotationBinder.getElementsToProcess(AnnotationBinder.java:727) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:561) at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:295) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:216) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1172) The code looks like this: for ( XProperty p : properties ) { if( !p.isTypeResolved() && !hasExplicitTargetEntity( p ) ) throw new IllegalStateException( "Property " + p + " has an unbound type and no explicit target entity."); final boolean currentHasIdentifier = addProperty( p, elements, localPropertyAccessor ); hasIdentifier = hasIdentifier || currentHasIdentifier; } It might need to be something like this instead: for ( XProperty p : properties ) { if(mustBeSkipped(p)) { continue; } if( !p.isTypeResolved() && !hasExplicitTargetEntity( p ) ) throw new IllegalStateException( "Property " + p + " has an unbound type and no explicit target entity."); final boolean currentHasIdentifier = addProperty( p, elements, localPropertyAccessor ); hasIdentifier = hasIdentifier || currentHasIdentifier; }

    Hibernate JIRA | 1 decade ago | Brian Lenz
    java.lang.IllegalStateException: Property moderationRuleHandler has an unbound type and no explicit target entity.

    2 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalStateException

      Property update has an unbound type and no explicit target entity.

      at org.hibernate.cfg.AnnotationBinder.addElementsOfAClass()
    2. Hibernate
      Configuration.buildSessionFactory
      1. org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(AnnotationBinder.java:938)
      2. org.hibernate.cfg.AnnotationBinder.getElementsToProcess(AnnotationBinder.java:788)
      3. org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:614)
      4. org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:353)
      5. org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:265)
      6. org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1205)
      6 frames