Ao que parece, você está utilizando o memória secundária como uma extensão da primária, ou algo assim.
Bem, um problema nisso é que você está caindo no problema dos EJB. Fazer um objeto extender ou implementar algo para torná-los persistíveis é muito problemático, você quebra, inclusive a questão do Tipo e do ‘É Um’.
O ideal era você criar POJOs [leia aqui ], mas seu meio de persistêcia não vai aguentar…
Ok, a idéia de não quebrar o paradigma OO usando um HSQLDB da vida é legal, mas, ao meu ver, você a quebra novamente ao me fazer implementar x ou y. Por isso o Prevayler usa o padrão Command, para não tocar na estrutura do objeto persistido.
Em implementar/extender algo, você acaba gerando complicações demais. Se o foco for aplicações simples [julgo pela descrição], com umas poucas entidades a serem persistidas, não vejo vantagem em usar um SGBD pequeno [como o HSQLDB] ou Prevalência.
De qualquer modo, são apens toques, não quero jogar areia no projeto, boa sorte!!
E se falei alguma besteira, me corrija, não pude ler muito seu código…
[]s