OK, this is kind of a followup on the generated abstract class...
I'm attempting to test using inheritance with an enum as the
discriminator column and a callback. For my classes:
Product (Abstract) with Book and Game inheriting from Product.
Product contains an enum (ProductType) to discriminate between the two.
Product's post-add callback I set to "initializeProductType" and
Cayenne generated this in _Product.java:
protected abstract void initializeProductType();
I had to go into Product.java and change that class to be abstract (I
don't want any instances of it created). I implemented
initializeProductType() in Book.java and Game.java (my only subclasses
thus far). At runtime, I get this exception:
Exception in thread "main" java.lang.IllegalArgumentException: Class
mrg.model.Product has no valid callback method 'initializeProductType'
Of course, this exception message is entirely true: Product does not
contain initializeProductType() because it is in the subclasses.
Thoughts on if this is legitimate?
Thanks,
mrg
PS. The callback method implementation is:..verride protected void
initializeProductType() { setProductType(ProductType.BOOK); } (for
Book, of course).
This archive was generated by hypermail 2.0.0 : Tue Mar 30 2010 - 11:53:50 EDT