It's not a secret anymore!*
The moose likes Object Relational Mapping and the fly likes could not initialize a collection+ [Microsoft][ODBC SQL Server Driver]Invalid Descrip Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "could not initialize a collection+ [Microsoft][ODBC SQL Server Driver]Invalid Descrip" Watch "could not initialize a collection+ [Microsoft][ODBC SQL Server Driver]Invalid Descrip" New topic
Author

could not initialize a collection+ [Microsoft][ODBC SQL Server Driver]Invalid Descrip

Shridhar. Blr.
Ranch Hand

Joined: Nov 23, 2000
Posts: 45
Hi All,

I am getting the following message, when i try to retreive the child object from the parent..



Session sess = sessionFactory.openSession();
Team obj = (Team) sess.load(Team.class, new Long(2457600));
Set s = obj.getPlayers();
System.out.println("PLayer -- "+obj.getPlayers());



Error Message :

org.hibernate.exception.GenericJDBCException: could not initialize a collection: [com.test.Team.players#2457600]
org.hibernate.exception.GenericJDBCException: could not initialize a collection: [com.test.Team.players#2457600]
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:82)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:70)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1351)
at org.hibernate.loader.collection.OneToManyLoader.initialize(OneToManyLoader.java:106)
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:484)
at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1346)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:170)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:47)
at org.hibernate.collection.PersistentSet.toString(PersistentSet.java:221)
at java.lang.String.valueOf(String.java:2131)
at java.lang.StringBuffer.append(StringBuffer.java:370)
at com.test.TeamPlayer.main(TeamPlayer.java:70)
Caused by: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataDouble(JdbcOdbc.java:3658)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataDouble(JdbcOdbcResultSet.java:5579)
at sun.jdbc.odbc.JdbcOdbcResultSet.getLong(JdbcOdbcResultSet.java:635)
at sun.jdbc.odbc.JdbcOdbcResultSet.getLong(JdbcOdbcResultSet.java:653)
at org.hibernate.type.LongType.get(LongType.java:26)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:77)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:68)
at org.hibernate.persister.collection.AbstractCollectionPersister.readKey(AbstractCollectionPersister.java:612)
at org.hibernate.loader.Loader.readCollectionElement(Loader.java:545)
at org.hibernate.loader.Loader.readCollectionElements(Loader.java:344)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:299)
at org.hibernate.loader.Loader.doQuery(Loader.java:384)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:203)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1344)
... 10 more

Team [Parent] <--> Player [Child]

Team.hbm.xml
<hibernate-mapping>
<class name="com.test.Team" table="dbo.teams">
<id name="id" column="team_id" >
<generator class="hilo"/>
</id>
<property name="name" column="team_name" />
<property name="city" column="city" />
<set name="players" cascade="all" inverse="true" lazy="true">
<key column="team_id"/>
<one-to-many class="com.test.Player"/>
</set>
</class>
</hibernate-mapping>


PLayer.hbm.xml:
<hibernate-mapping>
<class name="com.test.Player" table="dbo.players">
<id name="id" column="player_id">
<generator class="hilo"/>
</id>
<property name="firstName" column="first_name" />
<property name="lastName" column="last_name" />
<property name="draftDate" column="draft_date" />
<property name="annualSalary" column="salary" />
<property name="jerseyNumber" column="jersey_number" />
<many-to-one name="team" class="com.test.Team" column="team_id" />
</class>
</hibernate-mapping>

Any help would be highly appreciated..

Thanks,
/Shridhar..
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336


sun.jdbc.odbc.JdbcOdbc

Use a driver that is known to work with Hibernate, such as the latest Microsoft driver or jTDS.


JavaRanch FAQ HowToAskQuestionsOnJavaRanch
Shridhar. Blr.
Ranch Hand

Joined: Nov 23, 2000
Posts: 45
Hi,

Thanks for that, It works..

One more thing i wanna know, How is the spead/performance of Hibernate for "SELECT" Queries..

I am just interested in fetching the data from the SQL & create an xml..
The table may have large number of records..

Thanks,
/Shridhar..
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: could not initialize a collection+ [Microsoft][ODBC SQL Server Driver]Invalid Descrip