The spec does not support comparison of unknown Seralizable types, but this
is supported by JBoss-QL. However, as the object is stored in the database
as a binary array, it may not be supported by the resulting SQL query (e.g.
if it is a BLOB column)

A possible option is to map the class to a DVC, which maps JavaBean
properties to individual columns.

Jeremy

/*************************
 * Jeremy Boynes
 * Partner
 * Core Developers Network
 *************************/

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of
[EMAIL PROTECTED]
Sent: Thursday, June 05, 2003 9:32 AM
To: [EMAIL PROTECTED]
Subject: RE: [JBoss-user] EJB-QL Finder and POJO



The findByAge(Inteter) one works fine by itself? I.e., you verfied that the
syntax is valid for Integers but not Objects? What's the SQL-type/JDBC-type
your CMP POJO class is mapped as?

Dave



"Rupp,Heiko" <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]
06/05/2003 12:00 PM
Please respond to jboss-user
        To:        "'[EMAIL PROTECTED]'"
<[EMAIL PROTECTED]>
        cc:
        Subject:        RE: [JBoss-user] EJB-QL Finder and POJO



David,

> Whoops, I totally misunderstood your question (obviously). The spec

:)

> says that EJB-QL operates on "abstract schema types." I would imagine
> that, for DVCs (which is what we're talking about here, right?) the

Yes.

> abstract schema type is just "Object." I don't see anything in the spec
> which contradicts it, and it does explicitly say that Serializeable
> dependant value classes can be CMP-fields.

Yes, that is no problem. The reality looks like this:

17:56:27,700 INFO  [EntityOne] Created table 'TESTTABLE_ONE' successfully.
17:56:27,710 ERROR [EntityContainer] Starting failed
org.jboss.deployment.DeploymentException: Error compiling EJB-QL statement
'SELE
CT Object(o) FROM EntityOne AS o WHERE o.pojo=?1'; - nested throwable:
(org.jbos
s.ejb.plugins.cmp.ejbql.ParseException: Encountered "o.pojo" at line 1,
column 4
6.
Was expecting one of:
   "NOT" ...

With the following finder:

* @ejb.finder
*                  signature="java.util.Collection
findByPojo(java.lang.Object pojo)"
*                  query="SELECT Object(o) FROM EntityOne AS o WHERE
o.pojo=?1"
*
* @ejb.finder
*  signature="java.util.Collection findByAge(java.lang.Integer age)"
*                  query="SELECT Object(o) FROM EntityOne AS o WHERE
o.age=?1"

When I change java.lang.Object to com.acme.POJO, the error stays
the same.

Thanks
 Heiko
--
Bancotec GmbH      EMail: [EMAIL PROTECTED]
Calwer Str. 33     Telefon: +49 711 222 992 900
D-70173 Stuttgart  Telefax: +49 711 222 992 999
Ein Unternehmen der Cellent AG http://www.cellent.de/


-------------------------------------------------------
This SF.net email is sponsored by:  Etnus, makers of TotalView, The best
thread debugger on the planet. Designed with thread debugging features
you've never dreamed of, try TotalView 6 free at www.etnus.com.
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user



-------------------------------------------------------
This SF.net email is sponsored by:  Etnus, makers of TotalView, The best
thread debugger on the planet. Designed with thread debugging features
you've never dreamed of, try TotalView 6 free at www.etnus.com.
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to