Ok, I am now very very confused. I had removed the classes from my project, so in order to regenerate the error messages I had to re-add them. Here is an account of what i just did:
I used an ant build target to regenerate the classes.
I noticed that an additional file was generated: com/jnd/jnddb/model/package-info.class, but this com directory was NOT put under src, whereas all of the rest of the classes were in their proper locations. I'm not very experienced with Ant (I usually just use IntelliJ's internal build tools). I'm attaching my ant xml file, which I created by using IJ's feature to generate an ant build and removing all of the existing targets and replacing them with a build target containing the javac command as shown in the getting starting documentation.
I then tried, as before, to compile the single file QBasicContactInfo.java. It again failed, but did not complain about methods being inherited with the same signature. Instead, it only reported that it couldn't find the symbols:
QMessage, QAddress. QAddress is in the same package as QBasicContactInfo. QMessage is in another package with Message, which is a superclass of BasicContactInfo.
I then tried to build just QMessage, and it worked.
I then went back to build QAddress, and that worked, and then QBasicContactInfo worked.
I then tried to rebuild the whole project, but I got "cannot find symbol" errors for just about all the classes for which Q* is generated. I'm sorry I don't have the exact list, IJ doesn't let me copy from the message window except one line at a time.
I then deleted all of the generated classes and rebuilt. Everything built just fine.
I then re-generated the classes and tried to rebuild just QBasicContactInfo.java again, and this time it worked!
I tried several other of the Q* classes and they all worked.
So then I tried one more time to rebuild the entire project. The whole build failed with the error:
Compiler internal error. Process terminated with exit code 1
and then there were error messages for specific classes, all under my testing directory:
package com.jnd.jnddb.client.service does not exist
package com.jnd.jnddb.shared does not exist (several times)
cannot find symbol (every in these packages)
I tried deleted the testing directory (temporarily, just for diagnostics) and tried again. This time I just got the message:
Compiler internal error. Process terminated with exit code 1
So I went back and tried to compile just the QBasicContactInfo class, which had worked before, and now I got:
cannot find symbol class BasicContactInfo
package com.bdl.message.base does not exist
cannot find symbol class QAddress
cannot find symbol class BasicContactInfo
methods when(com.mysema.query.types.Expression<? extends T>) from com.mysema.query.types.expr.SimpleExpression<BasicContactInfo> and when(T) from com.mysema.query.types.path.BeanPath<BasicContactInfo> are inherited with the same signature
package com.bdl.message.base does not exist
cannot find symbol class BasicContactInfo
cannot find symbol class BasicContactInfo
cannot find symbol class QAddress
So... for a hypothesis:
When trying to build the Q* classes the compiler is looking for the compiled versions of the classes on which it depends. this seems mostly consistent. After a fresh rebuild and the generation of the new classes, I can compile them individually, since the compiled classes for everything else exists, and compiling one class does not clean up the output directory. But as soon as I try to rebuild the entire project, the output directory is cleaned and then the compiled output is not there when the Q* classes are reached for compilation.
I don't know why it would behave like this, or even if that hypothesis is correct. All I really know for certain is that these generated classes are not behaving like normal classes with respect to the compiler, and thus they are basically unusable. So far, it's simpler just to hand-type the sql for the queries.