Hi,

BasePeer.doSelect gives you a set of village Record objects, whereas AreaPeer.doselect gives you a list of area objects. If you want to use BasePeer.doSelect(), you have to process the village records. Look up the homepage of village in the wiki, get the source code, and see how to process a Record object. Its fairly easy, it is a kind of array.

I would guess that you use the list which you generate by BasePeer.doSelect() somewhere else in the code and there Struts or whatever your controller is discovers that Record does not have area getters and setters. It is certainly not the post.size() call which produces the error.

    Thomas

On Fri, 15 Jul 2005, Daniel Curto Millet wrote:



Thanks for the reply Thomas!

Although the table has a primary key, it's not the postcode.

I tried the following piece of code following Thomas' route n°2:

           criteria = new Criteria();
           criteria.addSelectColumn("area.postcode");
           criteria.add(AreaPeer.POSTCODE, (Object)new String("NULL"),
                                       Criteria.NOT_EQUAL);
           criteria.setDistinct();
           criteria.addAscendingOrderByColumn(AreaPeer.POSTCODE);
           List post = BasePeer.doSelect(criteria);
           System.out.println(post.size());

which gives me a jsp error:
[ERROR] [action] - "Servlet.service()" pour la servlet action a généré une
exception <javax.servlet.jsp.JspException: No getter method available for
property postcode for bean under name
add_postcode_letters>javax.servlet.jsp.JspException: No getter method available
for property postcode for bean under name add_postcode_letters

which ultimately points to this piece of struts code on my page:
<html:options collection="add_postcode_letters" property="postcode"
labelProperty="postcode"/>

This is strange in that if I don't have
           criteria.addSelectColumn("area.postcode");
and if instead of having:
           List post = BasePeer.doSelect(criteria);
I have:
           List post = AreaPeer.doSelect(criteria);

So, this code:
           criteria = new Criteria();
//          criteria.addSelectColumn("area.postcode");
           criteria.add(AreaPeer.POSTCODE, (Object)new String("NULL"),
                                       Criteria.NOT_EQUAL);
           criteria.setDistinct();
           criteria.addAscendingOrderByColumn(AreaPeer.POSTCODE);
           List post = AreaPeer.doSelect(criteria);
           System.out.println(post.size());

It gives me a list of multiple values but doesn't whine on a missing getter
method in a bean.

Also, if instead of having:
           List post = BasePeer.doSelect(criteria);
I have:
           List post = AreaPeer.doSelect(criteria);

It gives me a numberFormatExceptionError:
org.apache.torque.TorqueException: Bad conversion:
java.lang.NumberFormatException: For input string: "BR1"

Does anyone has any clues or hints?

Daniel

Quoting Thomas Fischer <[EMAIL PROTECTED]>:





Hi,

Does your Area table have a primary key ? Consider that for reading the
Areas, the Peer reads _ALL_ columns from the Area table, so if e.g. a
primary key is read, this leads always to distinct results, so the distinct
has no effect at all.

You can circumvent this by:
1) manually create a view which excludes all columns except the postcode
column, and set up an extra peer for the class (requires editing of
create-db scripts)
2) add the columns which to select from by hand
(criteria.addSelectColumns), use BasePeer to execute the query and convert
the result by hand.

Maybe there are other ways to solve this.

    Thomas
Daniel Curto Millet <[EMAIL PROTECTED]> schrieb am 15.07.2005 13:13:43:


Thanks for the reply!

It now compiles but I still get multiple values.

Daniel

Quoting Raphael Mankin <[EMAIL PROTECTED]>:

IIRC you have to cast the 2nd argument of add() to Object.I have
tripped over
this one as well. The methods in the class are infelicitously
overloaded.



On 15-Jul-2005 [EMAIL PROTECTED] wrote:

Thanks for the reply Alvaro!

If I don't use a criterion, I get another extra weird error written
here
below:
java.lang.Error: Unresolved compilation problem:
The method add(String, Object, SqlEnum) is ambiguous for the type
Criteria

So it has a problem with:
criteria.add(AreaPeer.POSTCODE, "NULL", Criteria.NOT_EQUAL);

If anyone has any clues or hints or anything useful, I'd be
verythankful,

Daniel

Quoting Alvaro Coronel <[EMAIL PROTECTED]>:

Well... it might have nothing to do with it but for me it is
just weird to
use a Criterion there.

What about this?

criteria = new Criteria();
criteria.add(AreaPeer.POSTCODE, "NULL", Criteria.NOT_EQUAL);
criteria.setDistinct();

If this selects distinct, you can go on to adding the order

criteria.addAscendingOrderByColumn(AreaPeer.POSTCODE)

Good luck!

Álvaro.

[EMAIL PROTECTED] wrote:

Hi,

I have a very strange problem with Torque. I'm building a website
using
struts
where on a certain page, a form is populated by having access to the
database
(MySql) using Torque. So in my ActionForm, I have the following to
populate
an
option collection.

criteria = new Criteria();

// No postcode with a null value
Criteria.Criterion notNullPost = criteria.getNewCriterion
(AreaPeer.POSTCODE, "NULL", Criteria.NOT_EQUAL);
criteria.add(notNullPost);

// Order the list
criteria.addAscendingOrderByColumn(AreaPeer.POSTCODE);

// Show only distinct
criteria.setDistinct();

System.out.println(criteria.toString());

List post = AreaPeer.doSelect(criteria);
request.getSession().setAttribute("add_postcode_letters", post);

The problem is that the list I get on the page is a list with
multiple
values
as
if the setDistinct() wouldn't have worked.

Yet, when I query the database from the MySql command line
using the query
I
got
from this bit of code: System.out.println(criteria.toString());
It works under MySql... Here's the sql query:
mysql> SELECT DISTINCT area.POSTCODE FROM area WHERE area.
POSTCODE<>'NULL'
ORDER
BY area.POSTCODE ASC;

The table is called area and has 5 columns including the postcode
column.
I'm using Torque 3.1, Tomcat v5 and MySql v4.1

If anyone has any clues or hints or anything useful, I'd be
very thankful,

Daniel



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

--
                               Lead us not into temptation; we
                               can find our own way.


Raphael Mankin
----------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to