使用方法

LDAP 準拠のディレクトリに保存されているドメインエンティティにアクセスするには、実装を大幅に容易にする高度なリポジトリサポートを使用できます。これを行うには、次の例に示すように、リポジトリのインターフェースを作成します。

例 1: サンプル Person エンティティ
@Entry(objectClasses = { "person", "top" }, base="ou=someOu")
public class Person {

   @Id
   private Name dn;

   @Attribute(name="cn")
   @DnAttribute(value="cn", index=1)
   private String fullName;

   @Attribute(name="firstName")
   private String firstName;

   // No @Attribute annotation means this is bound to the LDAP attribute
   // with the same value
   private String firstName;

   @DnAttribute(value="ou", index=0)
   @Transient
   private String company;

   @Transient
   private String someUnmappedField;
   // ...more attributes below
}

ここには単純なドメインオブジェクトがあります。これには、Name 型の dn という名前のプロパティがあることに注意してください。そのドメインオブジェクトを使用すると、次のようにインターフェースを定義することで、その型のオブジェクトを永続化するリポジトリを作成できます。

例 2: Person エンティティを永続化するための基本的なリポジトリインターフェース
public interface PersonRepository extends CrudRepository<Person, Long> {

  // additional custom finder methods go here
}

ドメインリポジトリは CrudRepository を継承しているため、CRUD 操作とエンティティへのアクセスメソッドが提供されます。リポジトリインスタンスの操作は、それをクライアントに注入する依存関係の問題です。

例 3: 人物エンティティへのアクセス
@ExtendWith(SpringExtension.class)
@ContextConfiguration
class PersonRepositoryTests {

    @Autowired PersonRepository repository;

    @Test
    void readAll() {

      List<Person> persons = repository.findAll();
      assertThat(persons.isEmpty(), is(false));
    }
}

このサンプルは、Spring の単体テストサポートを使用してアプリケーションコンテキストを作成し、テストケースへのアノテーションベースの依存関係の注入を実行します。テストメソッド内では、リポジトリを使用してデータストアにクエリを実行します。