I've successfully migrated a self-made repository framework implementation to Deltaspike Data and so far it's a breeze!

The only thing I'm wondering is how to build custom abstract repositories with convenience methods all concrete repositories should inherit.

The scenario is the following:

* All entities extend an AbstractEntity (with fields like 'uuid', 'lastUpdated' and the 'id') * I want to introduce an abstract repository (AbstractRepository) implementation with methods like "findByUuid", "getLastUpdated", ... * All concrete repositories are abstract classes and should inherit from AbstractRepository


My naive (and non-working) approach was to write the following 4 classes:

Entites:
------------
@MappedSuperclass
public class AbstractEntity implements Serializable { ... }

@Entity
public class User extends AbstractEntity { ... }

Repositories:
--------------------
public abstract class AbstractRepository<T extends AbstractEntity> extends AbstractEntityRepository<T, Long> {
}

@Repository
public abstract class UserRepository extends AbstractRepository<User> {
}



When I try to deploy that; I'm getting the following exception:

org.apache.deltaspike.data.impl.RepositoryDefinitionException: Repository creation for class class com.acme.repository.AbstractRepository failed. Is it associated with a valid Entity? at org.apache.deltaspike.data.impl.meta.RepositoryComponents.extractEntityMetaData(RepositoryComponents.java:118) at org.apache.deltaspike.data.impl.meta.RepositoryComponents.add(RepositoryComponents.java:56) at org.apache.deltaspike.data.impl.RepositoryExtension.processAnnotatedType(RepositoryExtension.java:90)
---- SNIP ----



Is there something obvious I'm doing wrong? I'm glad for any help!

All the best,
Dominik


Reply via email to