SDN v3.0.0 유출 Neo4j 커뮤니티 나 상속에 관해서 및 징수에 문제가 조금 데 2.0.1봄 - 데이터 - Neo4J 클래스 다형성
. 아마도 누군가가 그 문제를 도울 수 있습니다. 기본적으로 다음과 같은 구조를 가지고 있습니다.
public abstract class Graphic;
public class Shape1 extends Graphic;
public class Shape2 extends Graphic;
public class Shape3 extends Graphic;
public class Overlay {
Set<Graphic> graphics;
}
public interface GraphicsRepository extends GraphRepository<Graphic>{}
그래픽 저장소를 사용하여 그래픽을 유지할 수 있으며 모든 다양한 속성은 구체적인 클래스를 기반으로 올바르게 저장됩니다. 올바른 속성으로 쿼리하고 개별 그래픽을 얻을 수 있으며 neo4j "포털"환경의 클래스와 관련된 다양한 작업을 수행 할 수 있습니다. 하지만 내가 오버레이에서 검색 할 때 나는 컬렉션 내의 클래스 유형으로 기본 클래스 Graphic 만 가져오고 캐스팅은 작동하지 않습니다. 나는 뭔가를 간과하거나 올바르게 행동하지 않을 수도 있지만 누군가가 제안 할 수있는 것이 있는지 게시하고 볼 것입니다. Google 검색 및 오버플로 스택을 검색하여 주요 클래스 였고 개체의 내부 컬렉션이 아닌 비슷한 문제 만 발견했습니다.
또한 그래픽 클래스에서 추상을 제거하면 같은 결과가 나타납니다. 오버레이 그래픽 세트의 모든 항목은 그래픽 유형입니다. @TypeAlias를 추가해도 도움이되지 않습니다.
감사
마이클, 답장을 보내 주셔서 감사합니다. 그래프에서 라벨을 확인한 결과 모든 노드의 라벨 앞에 "_"이 붙습니다. 다른 클래스를 확장하는 모든 클래스에도 상위 클래스 레이블이 있습니다. 그러나 오버레이 내에서 컬렉션에 액세스 할 때 형식은 항상 반복자를 통해 각 루프 등에 관계없이 그래픽입니다. –
자세한 조사에 따르면 그래픽을 검색 할 때 GraphicRepository findAll이 유형 정보를 유지한다는 것을 보여줍니다. 그러나 그래픽 컬렉션을 검색 할 때 OverlayRepository는 그렇지 않습니다. 내가 그 (것)들을 우연히 만나기 때문에 세부 사항을 공유 할 것이다. –