Estou usando o Spring Data Neo4j para trabalhar com meu banco de dados Neo4j. Meu aplicativo inclui uma entidade de nó Variation que tem um relacionamento com um enum chamado Type. Aqui está uma versão simplificada do meu código:
@Node
public class Variation extends BaseEntity {
private String title;
@Relationship(type = "HAS_ATTRIBUTE", direction = Relationship.Direction.OUTGOING)
private Type type;
// Other fields and relationships...
}
@Node
public enum Type {
CUSTOM(0),
FIX(1),
// Other constants...
@Id
private final int id;
Type(int id) {
this.id = id;
}
}
Aqui estão minhas build.gradle
dependências:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-neo4j'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
Também estou usando um VariationService para criar nós e relacionamentos. O findAll
método no VariationRepository falha com o seguinte erro:
java.lang.IllegalStateException: Required property $enum$name not found for class org.com.example.node.Type
at org.springframework.data.mapping.PersistentEntity.getRequiredPersistentProperty
...
O erro parece indicar um problema com o mapeamento do tipo enum.
Minha pergunta é:
- Como posso configurar o Spring Data Neo4j para mapear corretamente enumerações como Type como nós?
- Existe uma maneira específica de manipular propriedades enum no Neo4j ao usar Spring Data?