my bad - i am using cayenne-1.1M4
> public ASTNotEqual(ASTPath path, Object value)
looks interesting, but is 'myColumnB' a "value" or a "pathSpec" - ?
ps. what does AST stand for again?
thanks-matt
On Apr 15, 2004, at 10:22, Mike Kienenberger wrote:
> Matt Kerr <mat..entralparksoftware.com> wrote:
>> what's the cayenne magic to perform query like ...
>>
>> mysql> select * from MyTable where myColumnA != myColumnB;
>>
>>
>> all the ExpressionFactory methods i see are pathSpec<operator>value
>> but no pathSpec<operator>pathSpec - ?
>
> In the 1.1 head, matchNotExp() calls this:
>
> return new ASTNotEqual(new ASTObjPath(pathSpec), value);
>
> public ASTNotEqual(ASTPath path, Object value) {
> super(ExpressionParserTreeConstants.JJTNOTEQUAL);
> jjtAddChild(path, 0);
> jjtAddChild(new ASTScalar(value), 1);
> }
>
> One thing you could do is patch or subclass ASTNotEqual to create
> something
> like
>
> public ASTNotEqual(String pathSpec1, String pathSpec2) {
> super(ExpressionParserTreeConstants.JJTNOTEQUAL);
> jjtAddChild(new ASTObjPath(pathSpec1), 0);
> jjtAddChild(new ASTObjPath(pathSpec2), 0); // maybe ", 1)"
> instead?
> }
>
> but I don't know if there's an easier solution using the new
> expressions in
> 1.1.
>
> If you're using 1.0, you need to investigate following a similar
> process
> since I suspect the expression-handling in 1.0 is completely different.
>
This archive was generated by hypermail 2.0.0 : Thu Apr 15 2004 - 10:39:32 EDT