Se você esta com receio de adicionar algum outro framework, por conta de adicionar complexidade, então descarte também esta idéia de aplicar ActiveRecord em seu projeto.
A própria especificação fez um verdadeiro samba-do-crioulo-doido nos antigos EntityBeans do J2EE, onde você tinha que misturar códigos de seu DomainObject com códigos de infraestrutura a acesso a dados, por meio de várias interfaces necessárias para tal. O resultado foi um Active Record capenga, limitado, com EntityBeans difíceis de manter e de se construir.
Hoje em dia, poderíamos criar aspectos (AOP) para abstrair a infra e dar alguns comportamentos dinâmicos para acesso a dados, mas mesmo assim o custo para isso não compensa, em frente a tantas outras soluções de arquiteturas bem mais razoáveis para se aplicar em Java. Fora que, do meu ponto de vista, objetos de domínio com update, save, delete, find, findByPK não é uma coisa muito “saudável” no modelo (não são de sua responsabilidade).
Se você usa o Seam como disse, parta para outra abordagem. Você pode utlizar o recurso de persistencia dele out-of-box, que compõem o Pattern “Mediator”, chamado de EntityHome e EntityQuery. Ou pode simplesmente injetar EntityManager em qualquer classe via @In e montar seu próprio Repository ou DAO, ou nenhum dos dois, e fazer uso da especificação;
[]s