Interface Repository<ID extends AggregateRootId,T extends AggregateRoot<ID>>

Type Parameters:
ID - Type of the aggregate root identifier.
T - Type of the aggregate.

public interface Repository<ID extends AggregateRootId,T extends AggregateRoot<ID>>
Repository that supports CRUD operations for an aggregate.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(T aggregate)
    Adds a new aggregate to the repository without any metadata.
    void
    add(T aggregate, String metaType, Object metaData)
    Adds a new aggregate to the repository with some metadata.
    Factory method to create a new aggregate.
    void
    delete(ID aggregateId, int expectedVersion)
    Deletes an aggregate from the repository.
    @NotNull Class<T>
    Returns the class of the aggregate in the repository.
    @NotNull EntityType
    Returns a unique name for the aggregate root type.
    read(ID id)
    Reads the latest version of an aggregate.
    read(ID id, int version)
    Reads a given version of an aggregate.
    void
    update(T aggregate)
    Saves the changes on an aggregate in the repository without any metadata.
    void
    update(T aggregate, String metaType, Object metaData)
    Saves the changes on an aggregate in the repository including some metadata.