These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 
Author Message
 Post subject: org.springframework.orm.hibernate.HibernateSystemException:
PostPosted: Wed Aug 08, 2007 12:19 pm 
Newbie

Joined: Tue Aug 07, 2007 11:32 am
Posts: 4
I am getting the following error, while trying to fetch the records from a table.

I use Hibernate, Spring, Tomcat 5.5 etc.

Please let me know, if you have any idea about the cause of this issue.



org.springframework.orm.hibernate.HibernateSystemException: Unknown entity class: java.lang.Boolean; nested exception is net.sf.hibernate.MappingException: Unknown entity class: java.lang.Boolean
net.sf.hibernate.MappingException: Unknown entity class: java.lang.Boolean
at net.sf.hibernate.impl.SessionFactoryImpl.getPersister(SessionFactoryImpl.java:347)
at net.sf.hibernate.impl.SessionImpl.getClassPersister(SessionImpl.java:2718)
at net.sf.hibernate.impl.SessionImpl.getPersister(SessionImpl.java:2725)
at net.sf.hibernate.impl.SessionImpl.getEntityIdentifierIfNotUnsaved(SessionImpl.java:2787)
at net.sf.hibernate.type.EntityType.getIdentifier(EntityType.java:67)
at net.sf.hibernate.type.EntityType.isDirty(EntityType.java:143)
at net.sf.hibernate.type.TypeFactory.findDirty(TypeFactory.java:225)
at net.sf.hibernate.persister.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:275)
at net.sf.hibernate.impl.SessionImpl.flushEntity(SessionImpl.java:2536)
at net.sf.hibernate.impl.SessionImpl.flushEntities(SessionImpl.java:2486)
at net.sf.hibernate.impl.SessionImpl.flushEverything(SessionImpl.java:2281)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2260)
at org.springframework.orm.hibernate.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:214)
at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:313)
at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:289)
at us.mn.state.dot.witi.dao.hibernate.BaseHibernateDAO.searchForPageWithParameters(BaseHibernateDAO.java:183)
at us.mn.state.dot.witi.dao.hibernate.ExternalUserDAOHibernate.search(ExternalUserDAOHibernate.java:128)
at us.mn.state.dot.witi.service.impl.ExternalUserManagerImpl.search(ExternalUserManagerImpl.java:107)
at us.mn.state.dot.witi.actions.ExternalUserAction.list(ExternalUserAction.java:137)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.actions.MappingDispatchAction.execute(MappingDispatchAction.java:169)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at us.mn.state.dot.security.SiteBlinderFilter.doFilter(SiteBlinderFilter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:201)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Aug 08, 2007 1:35 pm 
Newbie

Joined: Wed Mar 02, 2005 10:52 am
Posts: 7
Could you provide your Entity classes and mappings.

It'll be easier to try to help.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Aug 08, 2007 1:50 pm 
Newbie

Joined: Tue Aug 07, 2007 11:32 am
Posts: 4
This is the entity class...

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
<class
name="us.mn.state.dot.witi.WitiUser"
table="EXT_USER_ID"
dynamic-update="false"
dynamic-insert="false"
>

<id
name="id"
column="EUI_ID"
type="java.lang.Integer"
>
<generator class="sequence">
<param name="sequence">EUI_ID_SEQ</param>
</generator>
</id>

<many-to-one
name="contractor"
class="us.mn.state.dot.witi.Contractor"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="EUI_CONT_ID"
not-null="true"
/>

<property
name="dn"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="EUI_USER_ID"
not-null="true"
/>

<property
name="passHash"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="PASSWORD"
/>

<property
name="role"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="EUI_ROLE_NAME"
/>

<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-WitiUser.xml
containing the additional properties and place it in your merge dir.
-->

</class>

</hibernate-mapping>



The methods

/**
* @see us.mn.state.dot.witi.dao.ExternalUserDAO#search(java.lang.String,
* java.lang.String, int, int)
*/
public List search(final String userName, final String contractorName,
final int pageSize, final int page) {
final String[] params = {"userName", "contractorName"};
final Object[] values = {userName, contractorName};
final String query = "from WitiUser as user "
+ "where user.contractor.name like :contractorName "
+ "and user.dn like :userName "
+ "order by user.dn";
return searchForPageWithParameters(pageSize, page, query, params,
values);
}



public final List searchForPageWithParameters(final int pageSize,
final int page, final String queryString, final String[] paramName,
final Object[] param) throws IllegalArgumentException {
//return new ArrayList();
checkArgs(page, pageSize);
final List results = (List) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(final Session session) {
Object result = null;
try {
Query query = session.createQuery(queryString);
query.setMaxResults(pageSize);
query.setFirstResult(pageSize * (page - 1));
for (int i = 0; i < paramName.length; i++) {
query.setParameter(paramName[i], param[i]);
}
result = query.list();
} catch (HibernateException he) {
he.printStackTrace();
//throw new RuntimeException(he);
throw SessionFactoryUtils.convertHibernateAccessException(he);
}
return result;

}
});
return results;
}


Top
 Profile  
 
 Post subject:
PostPosted: Wed Aug 08, 2007 1:56 pm 
Newbie

Joined: Wed Mar 02, 2005 10:52 am
Posts: 7
And what is the generated SqL? (show_sql=true)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Aug 08, 2007 3:30 pm 
Newbie

Joined: Tue Aug 07, 2007 11:32 am
Posts: 4
Hibernate queries

INFO: Hibernate: select count(*) as x0_0_ from EXT_USER_ID witiuser0_, CONTRACTORS contractor1_ where (contractor1_.CONT_NAME like ? and witiuser0_.EUI_CONT_ID=contractor1_.CONT_ID)and(witiuser0_.EUI_USER_ID like ? )
Hibernate: select * from ( select witiuser0_.EUI_ID as EUI_ID, witiuser0_.EUI_CONT_ID as EUI_CONT2_, witiuser0_.EUI_USER_ID as EUI_USER3_, witiuser0_.PASSWORD as PASSWORD, witiuser0_.EUI_ROLE_NAME as EUI_ROLE5_ from EXT_USER_ID witiuser0_, CONTRACTORS contractor1_ where (contractor1_.CONT_NAME like ? and witiuser0_.EUI_CONT_ID=contractor1_.CONT_ID)and(witiuser0_.EUI_USER_ID like ? ) order by witiuser0_.EUI_USER_ID ) where rownum <= ?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?
Hibernate: select contractor0_.CONT_ID as CONT_ID1_, contractor0_.CONT_ADDRESS1 as CONT_ADD2_1_, contractor0_.CONT_ADDRESS2 as CONT_ADD3_1_, contractor0_.CONT_CITY as CONT_CITY1_, contractor0_.CONT_STE_CODE as CONT_STE5_1_, contractor0_.CONT_FAX_NUM as CONT_FAX6_1_, contractor0_.CONT_ACTIVE_YN as CONT_ACT7_1_, contractor0_.CONT_PHONE_NUM as CONT_PHO8_1_, contractor0_.CONT_EXT as CONT_EXT1_, contractor0_.CONT_FED_TAX_ID as CONT_FE10_1_, contractor0_.CONT_ZIP_CODE as CONT_ZI11_1_, contractor0_.CONT_NAME as CONT_NAME1_, usstate1_.STE_CODE as STE_CODE0_, usstate1_.STE_NAME as STE_NAME0_ from CONTRACTORS contractor0_ left outer join STATES usstate1_ on contractor0_.CONT_STE_CODE=usstate1_.STE_CODE where contractor0_.CONT_ID=?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Aug 08, 2007 5:23 pm 
Newbie

Joined: Tue Aug 07, 2007 11:32 am
Posts: 4
I resolved the problem after breaking the head nearly for 3-4 days.

The reason is I had a member field like


private Contractor contractor;

and I had three methods like below.


public boolean isContractor() {
return hasRole("CONTRACTOR");
}

public Contractor getContractor() {
}

public void setContractor() {}


Because of the first method, the Hibernate might have confused about the type of the contractor field (whether it is Contractor or java.lang.Boolean).

So After I changed the method name as hasContractorRole(), then everything started working fine.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.