エンティティは、永続ストレージからのデータにマップされたデータを保持します。通常、これは DB です。
ID を保持できます:
class Book {
private String title;
public String getTitleId() { return title; }
private Long publisherId; // <== **it is**!
public Long getPublisherId() { return publisherId; }
private List<Long> authorIds;
public List<Long> getAuthorIds() { return authorIds; }
}
または解決されたエンティティ:
class Book {
private String title;
public String getTitleId() { return title; }
private Publisher publisher; // <== **it is**!
public Publisher getPublisher() { return publisher; }
private List<Author> authors;
public List<Author> getAuthors() { return authors; }
}
Hibernate のような ORM を使用する場合、ORM が * join * を関連するエンティティと無料で行うので、解決されたエンティティの操作は簡単です。
しかし、パフォーマンスに関心がある場合、または DB 機能を使用して手動の SQL クエリでロジックを Java から SQL に移動したい場合は、ID を持つエンティティが勝ちます (それらは高速であり、関連する各エンティティを手動で結合するのは面倒です)!
そこで、2 種類のエンティティを維持することにしました。ID を使用するものと、この知識をデータ型 (型名) で保持する解決済みの関連エンティティを使用するものです。
そのため、クラス名に最適なサフィックスを取得するためにグーグルを開始しましたが、適切なキーワードが見つかりません。ID と 関連するエンティティをエンティティに保持するための方法論/テクニックの名前の付け方を教えてください!