Your solution would work, provided that the getters and setters are in
the base class "Foo". The methods I'm selecting into are nested, not
simple properties, in the class "Bar".
Here's a better example:
<select id="test" resultClass="Foo">
SELECT
baz1 AS "bar.baz1",
baz2 AS "bar.baz2",
column1 AS "test"
FROM
foo
</select>
class Foo{
private Bar bar;
private String test;
Bar getBar() {
if(this.bar == null) {
this.bar = new Bar();
}
return bar;
}
void setBar(Bar bar) {
this.bar = bar;
}
void setTest(String test) {
this.test = test;
}
String getTest() {
return this.test;
}
}
....
class Bar{
private String baz1, baz2;
String getBaz1() {
return baz1;
}
void setBaz1(String baz1) {
this.baz1= baz1;
}
String getBaz2() {
return baz2;
}
void setBaz2(String baz2) {
this.baz2 = baz2;
}
}
....
In this example, member "test" in class "Foo" is set correctly...
however, the values of nested member "baz1" and "baz2" in the bean
"Bar" are not set. If I use a Map instead of relying on the SQL
alias:
<result property="test" column="column1" />
<result property="bar.baz1" column="baz1" />
<result property="bar.baz2" column="baz2" />
all values are set correctly, even the nested ones.
This is my hang-up... let me know if there is a workaround or I'm
missing something.
Tom