Ошибка сканирования порядка классов в Neo4J OGM - PullRequest
0 голосов
/ 05 ноября 2019

У меня возникают проблемы с сканированием классов заказов в Neo4 OGM.

Возьмите следующее минимальное приложение Spring Data Rest + Spring Boot:

@NodeEntity("Country")
public class Country extends CountryRevision {
}

@NodeEntity("CountryRevision")
public class CountryRevision extends RevisionEntity<CountryRevision> {
    String name;
}

public abstract class RevisionEntity<T> {

    @Id @GeneratedValue(strategy = UuidStrategy.class)
    String id;

    @Relationship
    String previousRevision;

}

@RepositoryRestResource(collectionResourceRel = "countries", path = "countries")
public interface CountryRepository extends Neo4jRepository<Country, String> {}

@RepositoryRestResource(collectionResourceRel = "countryRevisions", path = "country-rev")
public interface CountryRevisionRepository extends Neo4jRepository<CountryRevision, String> {}

@SpringBootApplication
@EnableNeo4jRepositories(basePackageClasses = DemoApplication.class)
@EntityScan(basePackageClasses = DemoApplication.class)
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

При отправке в / country-rev, я получаю следующую ошибку:

java.lang.RuntimeException: Field previousRevision not found in class com.example.demo.CountryRevision or any of its superclasses
    at org.neo4j.ogm.metadata.ClassInfo.getField(ClassInfo.java:601) ~[neo4j-ogm-core-3.2.1.jar:3.2.1]
    at org.neo4j.ogm.metadata.FieldInfo.readProperty(FieldInfo.java:411) ~[neo4j-ogm-core-3.2.1.jar:3.2.1]

Что действительно странно, так это то, что если я изменю имя класса "Country" на другое, например, "Toto", все будет работать нормально.

Я отладил способ инициализации OGM. Похоже, что в зависимости от имени класса карта, содержащая все OGM ClassInfos, будет обрабатываться в другом порядке (в DomainInfo.prepareClass ()), что приведет к разным результатам.

Мой вопрос: есть ли что-то не так? с предыдущим примером, или это ошибка в OGM?

...