Основной идентификатор поля Neo4J OGM в Scala равен нулю - PullRequest
0 голосов
/ 09 апреля 2019

Это мой класс сущности узла:

@NodeEntity
class SutStateEntity(
    @Id
    @GeneratedValue
    @Index(unique = true)
    val id: String) {

  def this(sutStateIdentifier: SutStateIdentifier) = this(sutStateIdentifier.hash)
  def this() = this("")
}

Я использую уникальное хеш-значение sutStateIdentifier в качестве своего идентификатора. Когда я сохраняю SutStateEntity внутри транзакции:

val sutStateEntity = new SutStateEntity(sutStateIdentifier)
session.save(sutStateEntity)

Я получаю следующее исключение:

Exception in thread "main" org.neo4j.ogm.exception.core.MappingException: `Field with primary id is null for entity ....SutStateEntity@34aa8b61`

Я прочитал, что эта ошибка возникает, если я не указал конструктор по умолчанию, который я сделал.

редактирование: Работает следующий пример:

@Id
@GeneratedValue
var id: java.lang.Long = 0L

Полагаю, мне нужно изменить идентификатор поля на var, но он все равно не работает, если я использую строку. Даже с java.lang.String.

1 Ответ

1 голос
/ 12 апреля 2019

Назначение неверно. Это работает:

@Id
@GeneratedValue
var id: java.lang.Long 
...