A: 

The problem is likely to be that you have subclassed JobDetail.

When you used RAMJobStore, your ScheduledJobDetail objects would have been kept in memory, and so you could cast back from JobDetail without a problem. When using a database JobStore, though, Quartz will be reconstructing the JobDetail objects itself, and it has no way of knowing that you want it to use a custom class for this, and so you get the exception.

Even if Quartz did know to use a ScheduledJobDetail, it would have no way of handling the additional fields you added.

Subclassing JobDetail is not the way to go. You need to find some other way of encoding this information, without subclassing.

skaffman