これを正しく把握することができません。 、Spring Neo4Jクエリ抽象エンティティ属性
@NoRepositoryBean
public interface BaseGraphRepository<T extends GraphEntity> extends GraphRepository<T> {
T findById(String id);
Collection<T> findByIdIn(Collection<String> ids);
T deleteById(String id);
Collection<T> deleteByIdIn(Collection<String> ids);
}
アイデアがGraphEntityをextentingている複数のエンティティを持つことです。
public abstract class GraphEntity extends AbstractEntity {
@GraphId
@Getter @Setter
@JsonIgnore
protected Long nodeId;
@Getter @Setter
@Index(unique = true, primary = true)
protected String id;
}
そして、このようなBaseGraphRepository:
は、私はこのようなAbstractEntity/AbstractGraphEntityクラスが持っていますBaseGraphRepositoryを拡張するいくつかのリポジトリを使用します。
しかし、私がfindByIdで照会するたびに、それは私にnullを与え続けます。
GraphEntity
を@NodeEntity
として使用しようとしましたが、これはひどい考えです.1つの種類のエンティティのIDをクエリすると、カテゴリと呼ばれますが、ProductRepositoryでは、私はGraphEntity
オブジェクトです。
どのように私はこれにアプローチする必要がありますか?
ありがとうございます!
クエリの生成が意図されています。これは、 ':GraphEntity'を使用しないと、' class GraphEntity'で宣言したインデックスを使用できなくなるからです。回避策として、findメソッドをオーバーライドして ':GraphEntity:T'とマッチさせることができますが、あまりエレガントではありません。 – Synch