java.lang.ClassCastException: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column

Hibernate JIRA | Michael Simons | 4 years ago
tip
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards for you help.
  1. 0

    Given a mapping like {code} @ManyToOne(fetch=FetchType.EAGER, optional=false) @JoinColumnsOrFormulas({ @JoinColumnOrFormula(formula=@JoinFormula(value=Titel.DOMAIN_FORMULA, referencedColumnName="rv_domain")), @JoinColumnOrFormula(column=@JoinColumn(name="titel", referencedColumnName="rv_low_value")) }) @Fetch(FetchMode.JOIN) @NotNull private Titel titel; {code} where Titel is a subtype of a DomainValue: {code} @Entity @DiscriminatorValue(Titel.DOMAIN) public class Titel extends DomainValue { private static final long serialVersionUID = 5804243997732685958L; public final static String DOMAIN = "TITEL"; public final static String DOMAIN_FORMULA = "'" + DOMAIN + "'"; } {code} base class DomainValue {code} @Entity @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @Cacheable(true) @Cache(usage=CacheConcurrencyStrategy.READ_ONLY) @Immutable @Table(name="cg_ref_codes") @IdClass(DomainValue.PrimaryKey.class) @DiscriminatorColumn(name="rv_domain") public class DomainValue implements Serializable { ... } {code} the @NotNull leads to a class cast exception while starting the persistence unit: {code} java.lang.ClassCastException: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyNotNull(TypeSafeActivator.java:314) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyConstraints(TypeSafeActivator.java:247) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:209) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyRelationalConstraints(TypeSafeActivator.java:186) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyRelationalConstraints(TypeSafeActivator.java:158) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(TypeSafeActivator.java:110) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] {code} Mapping seams to work, though. But i guess the validation isnt't in place.

    Hibernate JIRA | 4 years ago | Michael Simons
    java.lang.ClassCastException: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column
  2. 0

    Given a mapping like {code} @ManyToOne(fetch=FetchType.EAGER, optional=false) @JoinColumnsOrFormulas({ @JoinColumnOrFormula(formula=@JoinFormula(value=Titel.DOMAIN_FORMULA, referencedColumnName="rv_domain")), @JoinColumnOrFormula(column=@JoinColumn(name="titel", referencedColumnName="rv_low_value")) }) @Fetch(FetchMode.JOIN) @NotNull private Titel titel; {code} where Titel is a subtype of a DomainValue: {code} @Entity @DiscriminatorValue(Titel.DOMAIN) public class Titel extends DomainValue { private static final long serialVersionUID = 5804243997732685958L; public final static String DOMAIN = "TITEL"; public final static String DOMAIN_FORMULA = "'" + DOMAIN + "'"; } {code} base class DomainValue {code} @Entity @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @Cacheable(true) @Cache(usage=CacheConcurrencyStrategy.READ_ONLY) @Immutable @Table(name="cg_ref_codes") @IdClass(DomainValue.PrimaryKey.class) @DiscriminatorColumn(name="rv_domain") public class DomainValue implements Serializable { ... } {code} the @NotNull leads to a class cast exception while starting the persistence unit: {code} java.lang.ClassCastException: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyNotNull(TypeSafeActivator.java:314) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyConstraints(TypeSafeActivator.java:247) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:209) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyRelationalConstraints(TypeSafeActivator.java:186) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyRelationalConstraints(TypeSafeActivator.java:158) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(TypeSafeActivator.java:110) ~[hibernate-core-4.1.11.Final.jar:4.1.11.Final] {code} Mapping seams to work, though. But i guess the validation isnt't in place.

    Hibernate JIRA | 4 years ago | Michael Simons
    java.lang.ClassCastException: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column

    Root Cause Analysis

    1. java.lang.ClassCastException

      org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column

      at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyNotNull()
    2. Hibernate
      TypeSafeActivator.activate
      1. org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyNotNull(TypeSafeActivator.java:314)[hibernate-core-4.1.11.Final.jar:4.1.11.Final]
      2. org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyConstraints(TypeSafeActivator.java:247)[hibernate-core-4.1.11.Final.jar:4.1.11.Final]
      3. org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:209)[hibernate-core-4.1.11.Final.jar:4.1.11.Final]
      4. org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyRelationalConstraints(TypeSafeActivator.java:186)[hibernate-core-4.1.11.Final.jar:4.1.11.Final]
      5. org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyRelationalConstraints(TypeSafeActivator.java:158)[hibernate-core-4.1.11.Final.jar:4.1.11.Final]
      6. org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(TypeSafeActivator.java:110)[hibernate-core-4.1.11.Final.jar:4.1.11.Final]
      6 frames