org.hibernate.MappingException

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • Hibernate developers and/or gurus, please look at the following code I found suspicious that in Hibernate is bug. From following code the irrelevant properties and mapping was removed (and like that it was also tested). I've spent a whole day solving this problem with no result. Using "Table per subclass" - Hibernate throws an exception (why?). Using "Table per concrete class" Hibernate runs without problems. Table per subclass: BLOCK 1 is not commented out, BLOCK 2 is commented out Table per concrete class: BLOCK 1 is commented out, BLOCK 2 is not commented out Mapping documents: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.kovine.kfe.dao.TableColumn" table="KFE_TABLE_COLUMN"> <id name="id" unsaved-value="null" column="TABLE_COLUMN_ID"> <generator class="sequence"> <param name="sequence">KFE_TABLE_COLUMN_ID_SEQ</param> </generator> </id> </class> <class name="com.kovine.kfe.dao.Widget" table="KFE_WIDGET"> <id name="id" unsaved-value="null" column="WIDGET_ID"> <generator class="sequence"> <param name="sequence">KFE_WIDGET_ID_SEQ</param> </generator> </id> <!-- BLOCK 1: <joined-subclass name="com.kovine.kfe.dao.WidgetText" table="KFE_WIDGET_TYPE_INPUTTEXT"> <key column="WIDGET_ID" /> <many-to-one unique="true" name="tableColumn" class="com.kovine.kfe.dao.TableColumn" cascade="all" column="TABLE_COLUMN_ID" not-null="true" /> </joined-subclass> --> </class> <!-- BLOCK 2 --> <class name="com.kovine.kfe.dao.WidgetType"> <id name="id" unsaved-value="null" column="WIDGET_TYPE_ID"> <generator class="sequence"> <param name="sequence">KFE_WIDGET_ID_SEQ</param> </generator> </id> <union-subclass name="com.kovine.kfe.dao.WidgetText" table="KFE_WIDGET_TYPE_INPUTTEXT"> <many-to-one unique="true" name="tableColumn" class="com.kovine.kfe.dao.TableColumn" cascade="all" column="TABLE_COLUMN_ID" not-null="true" /> </union-subclass> </class> </hibernate-mapping> Code between sessionFactory.openSession() and session.close(): none. sessionFactory.openSession() causes exception public class WidgetText extends WidgetType { private TableColumn tableColumn; public TableColumn getTableColumn() { return tableColumn; } public void setTableColumn(TableColumn tableColumn) { this.tableColumn = tableColumn; } } public abstract class WidgetType { private Integer id; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } } Full stack trace of any exception that occurs: INFO Configuration - Mapping resource: com/kovine/kfe/dao/TableColumn.hbm.xml INFO HbmBinder - Mapping class: com.kovine.kfe.dao.TableColumn -> KFE_TABLE_COLUMN INFO HbmBinder - Mapping class: com.kovine.kfe.dao.Widget -> KFE_WIDGET INFO HbmBinder - Mapping class: com.kovine.kfe.dao.WidgetType -> WidgetType INFO HbmBinder - Mapping union-subclass: com.kovine.kfe.dao.WidgetText -> KFE_WIDGET_TYPE_INPUTTEXT INFO Configuration - Configured SessionFactory: null INFO Configuration - processing extends queue INFO Configuration - processing collection mappings INFO Configuration - processing association property references INFO Configuration - processing foreign key constraints INFO Dialect - Using dialect: org.hibernate.dialect.Oracle9Dialect INFO SettingsFactory - Default batch fetch size: 1 INFO SettingsFactory - Generate SQL with comments: disabled INFO SettingsFactory - Order SQL updates by primary key: disabled INFO SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory INFO ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory INFO SettingsFactory - Query language substitutions: {} INFO NamingHelper - JNDI InitialContext properties:{} INFO DatasourceConnectionProvider - Using datasource: java:comp/env/jdbc/kfe INFO SettingsFactory - JDBC batch size: 15 INFO SettingsFactory - JDBC batch updates for versioned data: disabled INFO SettingsFactory - Scrollable result sets: enabled INFO SettingsFactory - JDBC3 getGeneratedKeys(): disabled INFO TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions) INFO TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) INFO SettingsFactory - Automatic flush during beforeCompletion(): disabled INFO SettingsFactory - Automatic session close at end of transaction: disabled INFO SettingsFactory - Cache provider: org.hibernate.cache.EhCacheProvider INFO SettingsFactory - Second-level cache: enabled INFO SettingsFactory - Optimize cache for minimal puts: disabled INFO SettingsFactory - Structured second-level cache entries: enabled INFO SettingsFactory - Query cache: disabled INFO SettingsFactory - Statistics: disabled INFO SettingsFactory - Deleted entity synthetic identifier rollback: disabled INFO SettingsFactory - Default entity-mode: pojo INFO SessionFactoryImpl - building session factory ERROR HibernateUtil - Initial SessionFactory creation failed. org.hibernate.MappingException: Could not determine type for column TABLE_COLUMN_ID of type org.hibernate.type.ManyToOneType: org.hibernate.MappingException at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:131) at org.hibernate.persister.entity.UnionSubclassEntityPersister.generateSubquery(UnionSubclassEntityPersister.java:320) at org.hibernate.persister.entity.UnionSubclassEntityPersister.<init>(UnionSubclassEntityPersister.java:135) at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:61) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:199) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1043) at com.kovine.kfe.HibernateUtil.<clinit>(HibernateUtil.java:30) ... Caused by: org.hibernate.MappingException: Unknown entity: com.kovine.kfe.dao.TableColumn at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:489) at org.hibernate.impl.SessionFactoryImpl.getIdentifierType(SessionFactoryImpl.java:563) at org.hibernate.type.EntityType.getIdentifierType(EntityType.java:216) at org.hibernate.type.EntityType.getIdentifierOrUniqueKeyType(EntityType.java:226) at org.hibernate.type.ManyToOneType.sqlTypes(ManyToOneType.java:29) at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:124) ... 87 morete.type.ManyToOneType.sqlTypes(ManyToOneType.java:29) at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:124) ... 87 morere
    via by Martin Zdila,
  • Hibernate developers and/or gurus, please look at the following code I found suspicious that in Hibernate is bug. From following code the irrelevant properties and mapping was removed (and like that it was also tested). I've spent a whole day solving this problem with no result. Using "Table per subclass" - Hibernate throws an exception (why?). Using "Table per concrete class" Hibernate runs without problems. Table per subclass: BLOCK 1 is not commented out, BLOCK 2 is commented out Table per concrete class: BLOCK 1 is commented out, BLOCK 2 is not commented out Mapping documents: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.kovine.kfe.dao.TableColumn" table="KFE_TABLE_COLUMN"> <id name="id" unsaved-value="null" column="TABLE_COLUMN_ID"> <generator class="sequence"> <param name="sequence">KFE_TABLE_COLUMN_ID_SEQ</param> </generator> </id> </class> <class name="com.kovine.kfe.dao.Widget" table="KFE_WIDGET"> <id name="id" unsaved-value="null" column="WIDGET_ID"> <generator class="sequence"> <param name="sequence">KFE_WIDGET_ID_SEQ</param> </generator> </id> <!-- BLOCK 1: <joined-subclass name="com.kovine.kfe.dao.WidgetText" table="KFE_WIDGET_TYPE_INPUTTEXT"> <key column="WIDGET_ID" /> <many-to-one unique="true" name="tableColumn" class="com.kovine.kfe.dao.TableColumn" cascade="all" column="TABLE_COLUMN_ID" not-null="true" /> </joined-subclass> --> </class> <!-- BLOCK 2 --> <class name="com.kovine.kfe.dao.WidgetType"> <id name="id" unsaved-value="null" column="WIDGET_TYPE_ID"> <generator class="sequence"> <param name="sequence">KFE_WIDGET_ID_SEQ</param> </generator> </id> <union-subclass name="com.kovine.kfe.dao.WidgetText" table="KFE_WIDGET_TYPE_INPUTTEXT"> <many-to-one unique="true" name="tableColumn" class="com.kovine.kfe.dao.TableColumn" cascade="all" column="TABLE_COLUMN_ID" not-null="true" /> </union-subclass> </class> </hibernate-mapping> Code between sessionFactory.openSession() and session.close(): none. sessionFactory.openSession() causes exception public class WidgetText extends WidgetType { private TableColumn tableColumn; public TableColumn getTableColumn() { return tableColumn; } public void setTableColumn(TableColumn tableColumn) { this.tableColumn = tableColumn; } } public abstract class WidgetType { private Integer id; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } } Full stack trace of any exception that occurs: INFO Configuration - Mapping resource: com/kovine/kfe/dao/TableColumn.hbm.xml INFO HbmBinder - Mapping class: com.kovine.kfe.dao.TableColumn -> KFE_TABLE_COLUMN INFO HbmBinder - Mapping class: com.kovine.kfe.dao.Widget -> KFE_WIDGET INFO HbmBinder - Mapping class: com.kovine.kfe.dao.WidgetType -> WidgetType INFO HbmBinder - Mapping union-subclass: com.kovine.kfe.dao.WidgetText -> KFE_WIDGET_TYPE_INPUTTEXT INFO Configuration - Configured SessionFactory: null INFO Configuration - processing extends queue INFO Configuration - processing collection mappings INFO Configuration - processing association property references INFO Configuration - processing foreign key constraints INFO Dialect - Using dialect: org.hibernate.dialect.Oracle9Dialect INFO SettingsFactory - Default batch fetch size: 1 INFO SettingsFactory - Generate SQL with comments: disabled INFO SettingsFactory - Order SQL updates by primary key: disabled INFO SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory INFO ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory INFO SettingsFactory - Query language substitutions: {} INFO NamingHelper - JNDI InitialContext properties:{} INFO DatasourceConnectionProvider - Using datasource: java:comp/env/jdbc/kfe INFO SettingsFactory - JDBC batch size: 15 INFO SettingsFactory - JDBC batch updates for versioned data: disabled INFO SettingsFactory - Scrollable result sets: enabled INFO SettingsFactory - JDBC3 getGeneratedKeys(): disabled INFO TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions) INFO TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) INFO SettingsFactory - Automatic flush during beforeCompletion(): disabled INFO SettingsFactory - Automatic session close at end of transaction: disabled INFO SettingsFactory - Cache provider: org.hibernate.cache.EhCacheProvider INFO SettingsFactory - Second-level cache: enabled INFO SettingsFactory - Optimize cache for minimal puts: disabled INFO SettingsFactory - Structured second-level cache entries: enabled INFO SettingsFactory - Query cache: disabled INFO SettingsFactory - Statistics: disabled INFO SettingsFactory - Deleted entity synthetic identifier rollback: disabled INFO SettingsFactory - Default entity-mode: pojo INFO SessionFactoryImpl - building session factory ERROR HibernateUtil - Initial SessionFactory creation failed. org.hibernate.MappingException: Could not determine type for column TABLE_COLUMN_ID of type org.hibernate.type.ManyToOneType: org.hibernate.MappingException at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:131) at org.hibernate.persister.entity.UnionSubclassEntityPersister.generateSubquery(UnionSubclassEntityPersister.java:320) at org.hibernate.persister.entity.UnionSubclassEntityPersister.<init>(UnionSubclassEntityPersister.java:135) at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:61) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:199) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1043) at com.kovine.kfe.HibernateUtil.<clinit>(HibernateUtil.java:30) ... Caused by: org.hibernate.MappingException: Unknown entity: com.kovine.kfe.dao.TableColumn at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:489) at org.hibernate.impl.SessionFactoryImpl.getIdentifierType(SessionFactoryImpl.java:563) at org.hibernate.type.EntityType.getIdentifierType(EntityType.java:216) at org.hibernate.type.EntityType.getIdentifierOrUniqueKeyType(EntityType.java:226) at org.hibernate.type.ManyToOneType.sqlTypes(ManyToOneType.java:29) at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:124) ... 87 morete.type.ManyToOneType.sqlTypes(ManyToOneType.java:29) at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:124) ... 87 morere
    via by Martin Zdila,
    • org.hibernate.MappingException: Could not determine type for column TABLE_COLUMN_ID of type org.hibernate.type.ManyToOneType: org.hibernate.MappingException at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:131) at org.hibernate.persister.entity.UnionSubclassEntityPersister.generateSubquery(UnionSubclassEntityPersister.java:320) at org.hibernate.persister.entity.UnionSubclassEntityPersister.<init>(UnionSubclassEntityPersister.java:135) at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:61) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:199) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1043) at com.kovine.kfe.HibernateUtil.<clinit>(HibernateUtil.java:30)
    No Bugmate found.