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.  [ 7 posts ] 
Author Message
 Post subject: ClassCastException
PostPosted: Sat Jun 18, 2005 10:28 am 
Newbie

Joined: Wed Jun 15, 2005 9:49 am
Posts: 12
Hi all,

there is a query like :

List l = session.find(
"select m.m1 , m.m2, ps.ps1 ,m.m3 from ex.M as m join m.propertyForSet as ps" +
" where ps.ps2=3");
System.out.println((A)l.get(0));

and there is connection 1-to-n between N and M class

A class contains m1,m2,m3,ps1 with their types but there is an error on line (A)l.get(0)



Thanks for any help.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jun 20, 2005 3:11 am 
Beginner
Beginner

Joined: Fri Feb 11, 2005 12:03 pm
Posts: 48
Location: Kiel, Germany
Hi,

please read
http://hibernate.org/160.html
first.

At first view it looks like you are doing a report query without dynamic instantiation and the objects of the list will therefore be Object[].


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 21, 2005 10:33 am 
Newbie

Joined: Wed Jun 15, 2005 9:49 am
Posts: 12
hi,
thanks for helping.
I tried to follow the link but I there is errors on build eg for checkstyletask.properties,clovertask,sqlException,... and I'm using MS access 2000 and I changed Hibernate.properties to (it works on my own programs):

hibernate.dialect org.hibernate.dialect.GenericDialect
hibernate.connection.driver_class sun.jdbc.odbc.JdbcOdbcDriver
hibernate.connection.username
hibernate.connection.password
hibernate.connection.url jdbc:odbc:test
hibernate.connection.url jdbc:odbc:.

error:

could not load definitions from resource checkstyletask.properties. It could not be found.
could not load definitions from resource clovertask. It could not be found.


eg:
[javac] Compiling 8 source files to E:\Hibernate\hibernate-3.0\eg
[echo] remember to place your JDBC driver in the lib directory
[java] 18:24:41,796 INFO Environment:464 - Hibernate 3.0.5
[java] 18:24:41,828 INFO Environment:482 - loaded properties from resource
hibernate.properties: {hibernate.connection.driver_class=sun.jdbc.odbc.JdbcOdbc
Driver, hibernate.cglib.use_reflection_optimizer=true, hibernate.cache.provider_
class=org.hibernate.cache.HashtableCacheProvider, hibernate.max_fetch_depth=1, h
ibernate.dialect=org.hibernate.dialect.GenericDialect, hibernate.jdbc.use_stream
s_for_binary=true, hibernate.query.substitutions=true 1, false 0, yes 'Y', no 'N
', hibernate.proxool.pool_alias=pool1, hibernate.connection.username=, hibernate
.cache.region_prefix=hibernate.test, hibernate.connection.url=jdbc:odbc:., hiber
nate.connection.password=****, hibernate.jdbc.batch_versioned_data=true, hiberna
te.connection.pool_size=1}
[java] 18:24:41,828 INFO Environment:509 - using java.io streams to persis
t binary types
[java] 18:24:41,828 INFO Environment:510 - using CGLIB reflection optimize
r
[java] 18:24:41,828 INFO Environment:540 - using JDK 1.4 java.sql.Timestam
p handling
[java] 18:24:41,953 INFO Configuration:464 - Mapping resource: org/hiberna
te/auction/AuctionItem.hbm.xml
[java] 18:24:42,671 INFO HbmBinder:260 - Mapping class: org.hibernate.auct
ion.AuctionItem -> AuctionItem
[java] 18:24:42,843 INFO Configuration:464 - Mapping resource: org/hiberna
te/auction/Bid.hbm.xml
[java] 18:24:42,984 INFO HbmBinder:260 - Mapping class: org.hibernate.auct
ion.Bid -> Bid
[java] 18:24:43,046 INFO HbmBinder:737 - Mapping subclass: org.hibernate.a
uction.BuyNow -> Bid
[java] 18:24:43,046 INFO Configuration:464 - Mapping resource: org/hiberna
te/auction/User.hbm.xml
[java] 18:24:43,140 INFO HbmBinder:260 - Mapping class: org.hibernate.auct
ion.User -> AuctionUser
[java] 18:24:43,156 INFO Configuration:875 - processing extends queue
[java] 18:24:43,156 INFO Configuration:879 - processing collection mapping
s
[java] 18:24:43,156 INFO HbmBinder:2041 - Mapping collection: org.hibernat
e.auction.AuctionItem.bids -> Bid
[java] 18:24:43,156 INFO HbmBinder:2041 - Mapping collection: org.hibernat
e.auction.User.bids -> Bid
[java] 18:24:43,156 INFO HbmBinder:2041 - Mapping collection: org.hibernat
e.auction.User.auctions -> AuctionItem
[java] 18:24:43,156 INFO Configuration:888 - processing association proper
ty references
[java] 18:24:43,156 INFO Configuration:917 - processing foreign key constr
aints
[java] 18:24:43,437 INFO DriverManagerConnectionProvider:41 - Using Hibern
ate built-in connection pool (not for production use!)
[java] 18:24:43,437 INFO DriverManagerConnectionProvider:42 - Hibernate co
nnection pool size: 1
[java] 18:24:43,437 INFO DriverManagerConnectionProvider:45 - autocommit m
ode: false
[java] 18:24:43,468 INFO DriverManagerConnectionProvider:80 - using driver
: sun.jdbc.odbc.JdbcOdbcDriver at URL: jdbc:odbc:.
[java] 18:24:43,468 INFO DriverManagerConnectionProvider:86 - connection p
roperties: {user=, password=****}
[java] 18:24:43,796 WARN SettingsFactory:103 - Could not obtain connection
metadata
[java] java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source
name not found and no default driver specified
[java] at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)

[java] at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
[java] at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028)
[java] at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnectio
n.java:323)
[java] at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)

[java] at java.sql.DriverManager.getConnection(DriverManager.java:512)
[java] at java.sql.DriverManager.getConnection(DriverManager.java:140)
[java] at org.hibernate.connection.DriverManagerConnectionProvider.getC
onnection(DriverManagerConnectionProvider.java:110)
[java] at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFacto
ry.java:72)
[java] at org.hibernate.cfg.Configuration.buildSettings(Configuration.j
ava:1463)
[java] at org.hibernate.cfg.Configuration.buildSessionFactory(Configura
tion.java:1004)
[java] at org.hibernate.auction.Main.main(Main.java:367)
[java] 18:24:43,843 INFO Dialect:92 - Using dialect: org.hibernate.dialect
.GenericDialect
[java] 18:24:43,859 INFO TransactionFactoryFactory:31 - Using default tran
saction strategy (direct JDBC transactions)
[java] 18:24:43,859 INFO TransactionManagerLookupFactory:33 - No Transacti
onManagerLookup configured (in JTA environment, use of read-write or transaction
al second-level cache is not recommended)
[java] 18:24:43,859 INFO SettingsFactory:125 - Automatic flush during befo
reCompletion(): disabled
[java] 18:24:43,875 INFO SettingsFactory:129 - Automatic session close at
end of transaction: disabled
[java] 18:24:43,875 INFO SettingsFactory:144 - Scrollable result sets: dis
abled
[java] 18:24:43,875 INFO SettingsFactory:152 - JDBC3 getGeneratedKeys(): d
isabled
[java] 18:24:43,875 INFO SettingsFactory:160 - Connection release mode: nu
ll
[java] 18:24:43,875 INFO SettingsFactory:184 - Maximum outer join fetch de
pth: 1
[java] 18:24:43,875 INFO SettingsFactory:187 - Default batch fetch size: 1

[java] 18:24:43,875 INFO SettingsFactory:191 - Generate SQL with comments:
disabled
[java] 18:24:43,875 INFO SettingsFactory:195 - Order SQL updates by primar
y key: disabled
[java] 18:24:43,875 INFO SettingsFactory:334 - Query translator: org.hiber
nate.hql.ast.ASTQueryTranslatorFactory
[java] 18:24:43,890 INFO ASTQueryTranslatorFactory:21 - Using ASTQueryTran
slatorFactory
[java] 18:24:43,890 INFO SettingsFactory:203 - Query language substitution
s: {no='N', true=1, yes='Y', false=0}
[java] 18:24:43,890 INFO SettingsFactory:209 - Second-level cache: enabled

[java] 18:24:43,906 INFO SettingsFactory:213 - Query cache: disabled
[java] 18:24:43,906 INFO SettingsFactory:321 - Cache provider: org.hiberna
te.cache.HashtableCacheProvider
[java] 18:24:43,906 INFO SettingsFactory:228 - Optimize cache for minimal
puts: disabled
[java] 18:24:43,906 INFO SettingsFactory:233 - Cache region prefix: hibern
ate.test
[java] 18:24:43,906 INFO SettingsFactory:237 - Structured second-level cac
he entries: disabled
[java] 18:24:43,921 INFO SettingsFactory:261 - Statistics: disabled
[java] 18:24:43,921 INFO SettingsFactory:265 - Deleted entity synthetic id
entifier rollback: disabled
[java] 18:24:43,921 INFO SettingsFactory:279 - Default entity-mode: pojo
[java] 18:24:44,203 INFO SessionFactoryImpl:152 - building session factory

[java] 18:24:44,953 INFO SessionFactoryObjectFactory:82 - Not binding fact
ory to JNDI, no JNDI name configured
[java] 18:24:44,968 INFO Dialect:92 - Using dialect: org.hibernate.dialect
.GenericDialect
[java] 18:24:44,984 INFO Configuration:875 - processing extends queue
[java] 18:24:44,984 INFO Configuration:879 - processing collection mapping
s
[java] 18:24:44,984 INFO Configuration:888 - processing association proper
ty references
[java] 18:24:44,984 INFO Configuration:917 - processing foreign key constr
aints
[java] 18:24:45,000 INFO Configuration:875 - processing extends queue
[java] 18:24:45,000 INFO Configuration:879 - processing collection mapping
s
[java] 18:24:45,000 INFO Configuration:888 - processing association proper
ty references
[java] 18:24:45,000 INFO Configuration:917 - processing foreign key constr
aints
[java] 18:24:45,000 INFO SchemaExport:113 - Running hbm2ddl schema export
[java] 18:24:45,000 INFO SchemaExport:129 - exporting generated schema to
database
[java] 18:24:45,000 INFO DriverManagerConnectionProvider:41 - Using Hibern
ate built-in connection pool (not for production use!)
[java] 18:24:45,015 INFO DriverManagerConnectionProvider:42 - Hibernate co
nnection pool size: 1
[java] 18:24:45,015 INFO DriverManagerConnectionProvider:45 - autocommit m
ode: false
[java] 18:24:45,015 INFO DriverManagerConnectionProvider:80 - using driver
: sun.jdbc.odbc.JdbcOdbcDriver at URL: jdbc:odbc:.
[java] 18:24:45,015 INFO DriverManagerConnectionProvider:86 - connection p
roperties: {user=, password=****}
[java] 18:24:45,046 ERROR SchemaExport:179 - schema export unsuccessful
[java] java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source
name not found and no default driver specified
[java] at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)

[java] at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
[java] at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028)
[java] at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnectio
n.java:323)
[java] at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)

[java] at java.sql.DriverManager.getConnection(DriverManager.java:512)
[java] at java.sql.DriverManager.getConnection(DriverManager.java:140)
[java] at org.hibernate.connection.DriverManagerConnectionProvider.getC
onnection(DriverManagerConnectionProvider.java:110)
[java] at org.hibernate.tool.hbm2ddl.SchemaExport$ProviderConnectionHel
per.getConnection(SchemaExport.java:432)
[java] at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.
java:130)
[java] at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.j
ava:99)
[java] at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryIm
pl.java:264)
[java] org.hibernate.exception.GenericJDBCException: Cannot open connection

[java] at org.hibernate.exception.SQLStateConverter.handledNonSpecificE
xception(SQLStateConverter.java:82)
[java] at org.hibernate.exception.SQLStateConverter.convert(SQLStateCon
verter.java:70)
[java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExcep
tionHelper.java:43)
[java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExcep
tionHelper.java:29)
[java] at org.hibernate.jdbc.ConnectionManager.openConnection(Connectio
nManager.java:301)
[java] at org.hibernate.jdbc.ConnectionManager.getConnection(Connection
Manager.java:110)
[java] at org.hibernate.cfg.Configuration.buildSessionFactory(Configura
tion.java:1005)
[java] at org.hibernate.auction.Main.main(Main.java:367)
[java] at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:13
7)
[java] 18:24:45,062 INFO SessionFactoryImpl:379 - Checking 0 named queries

[java] at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransacti
on.java:49)
[java] Setting up some test data
[java] at org.hibernate.transaction.JDBCTransactionFactory.beginTransac
tion(JDBCTransactionFactory.java:24)
[java] 18:24:45,140 WARN JDBCExceptionReporter:71 - SQL Error: 0, SQLState
: IM002
[java] at org.hibernate.jdbc.JDBCContext.beginTransaction(JDBCContext.j
ava:271)
[java] 18:24:45,140 ERROR JDBCExceptionReporter:72 - [Microsoft][ODBC Drive
r Manager] Data source name not found and no default driver specified
[java] at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.j
ava:1079)
[java] at org.hibernate.auction.Main.createTestAuctions(Main.java:285)
[java] at org.hibernate.auction.Main.main(Main.java:369)
[java] Caused by: java.sql.SQLException: [Microsoft][ODBC Driver Manager] D
ata source name not found and no default driver specified
[java] at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)

[java] at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
[java] at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028)
[java] at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnectio
n.java:323)
[java] at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)

[java] at java.sql.DriverManager.getConnection(DriverManager.java:512)
[java] at java.sql.DriverManager.getConnection(DriverManager.java:140)
[java] at org.hibernate.connection.DriverManagerConnectionProvider.getC
onnection(DriverManagerConnectionProvider.java:110)
[java] at org.hibernate.jdbc.ConnectionManager.openConnection(Connectio
nManager.java:298)
[java] ... 8 more
[java] Exception in thread "main"

BUILD FAILED
E:\Hibernate\hibernate-3.0\build.xml:617: Java returned: 1

Total time: 15 seconds


Thanks


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 22, 2005 2:13 am 
Beginner
Beginner

Joined: Fri Feb 11, 2005 12:03 pm
Posts: 48
Location: Kiel, Germany
Sorry for not being clear enough. With this link I just wanted to point that more information is needed:

Quote:
Give as much information as possible. Don't ignore the bullet points in the text field, fill out the required information. Yes, everything is needed in almost all cases.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 22, 2005 6:24 am 
Newbie

Joined: Wed Jun 15, 2005 9:49 am
Posts: 12
hi,

the real query is as below and there is connection 1-to-n between Product and Quantity and the result of both classes should be maintain in Khd class for iterate in jsp file next :

List l = session.find("select p.product_id , p.name , p.price , pq.quantity from general.Product as p join p.pquantity as pq where pq.product_id=3");

System.out.println(((Khd)(l.get(0))).getName()); //error


Quantity.java includes:

private Long qid = null ;
private Product product_id = null ;
private int quantity = 0 ;
and all set , get ...

Quantity.hbm contains :
<many-to-one name="product_id" class="general.Product" column="product_id" />

Product.java contains :
private Long product_id = null;
private String name = null;
private float price = 0 ;
private Set pquantity=new HashSet();
and all set , get ...

Product.hbm contains:
<set name="pquantity" table="productQuantity" cascade="all" inverse="true" lazy="true">
<key column="product_id"/>

<one-to-many class="general.Quantity" />

</set>

error is on line System.out.println(((Khd)(l.get(0))).getName()); :
java.lang.ClassCastException
at general.UserService.getQuantityList(UserService.java:204)
at org.apache.jsp.app_0005fdetails$jsp._jspService(app_0005fdetails$jsp.java:214)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
...

and how can I know what is the result when type of class is not known?

Thanks.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 22, 2005 9:56 am 
Beginner
Beginner

Joined: Fri Feb 11, 2005 12:03 pm
Posts: 48
Location: Kiel, Germany
Hibernate does not know about your class Khd, so the Objects in your List will be of type Object[].

Please try the following:

Code:
List l = session.find("select new Khd(p.product_id , p.name , p.price , pq.quantity) from general.Product as p join p.pquantity as pq where pq.product_id=3");


You will need an appropriate constructor in your class Khd:
Code:
public Khd(Long productId, String name, int quantity)


Please see
http://www.hibernate.org/hib_docs/reference/en/html_single/#queryhql-select
for another example.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jun 26, 2005 6:21 am 
Newbie

Joined: Wed Jun 15, 2005 9:49 am
Posts: 12
hi,
thanks a lot, my problem solved.

but another problem, I want to make a query between 3 classes:

this query works correctly:
Query query =session.createQuery("select new general.Kharid(p.product_id , p.name , p.price , pq.quantity) from general.Product as p join p.pquantity as pq , general.User as u join u.cquantity as c where pq.product_id=2");




when I change it, 1 error occurs in compiling it's file :
Query query =session.createQuery("select new general.Kharid
(p.product_id , p.name , p.price , pq.quantity) from general.Product as p join p.pquantity as pq , general.User as u join u.cquantity as c where u.username= ?", username , Hibernate.STRING);

UserService.java:209: createQuery(java.lang.String) in net.sf.hibernate.Session
cannot be applied to (java.lang.String,java.lang.String,net.sf.hibernate.type.Nu
llableType)
Query query =session.createQuery("select new general.Kharid
^
(p.product_id , p.name , p.price , pq.quantity) from general.Product as p join p.pquantity as pq , general.User as u join u.cquantity as c where u.username= ?", username , Hibernate.STRING);

1 error

thanks for any help.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 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.