【问题标题】:How can I use neo4j OGM with idiomatic Scala classes?如何将 neo4j OGM 与惯用的 Scala 类一起使用?
【发布时间】:2016-01-05 22:26:18
【问题描述】:

我想将 Neo4j 的新 OGM 库与惯用的(即案例类、不可变的)Scala 类一起用于我的域对象。

我可以使用其他注释来使以下类与 Neo4j OGM 一起使用吗?由于未找到 @GraphId,以下定义的国家/地区不会持久化。如果我添加一个可变图形 id 成员 var(已经不受欢迎,但是...),那么一个对象会被持久化,但没有 name 属性。

@NodeEntity 
case class Country (
  val name: String, 
  @GraphId val id: java.lang.Long = 0
)

我现在是否坚持使用具有可变属性的类 Java 类?

谢谢! 史蒂夫

【问题讨论】:

    标签: scala neo4j neo4j-ogm


    【解决方案1】:

    GraphId 不应该手动分配值。这可能是实体未按预期保存的原因。除此之外,我对 scala 不太熟悉,但 neo4j-ogm 和 scala 上的相关主题是 Neo4j OGM example with Scala

    【讨论】:

    • 谢谢。我实际上在另一个线程上模拟了我的工作代码——只是希望让它更像 Scala。似乎当一个对象被持久化时,会返回相同的对象并填充 id。对于 Scala,不变性是“圣杯”,我希望看到返回的原始对象的副本,其中填充了 id ,从而保持原始对象的不变性。 (有关 Scala 的一些相关详细信息,请查看我将用于我的域对象的案例类)。但我真的很喜欢 OGM,它消除了我对 Spring 的依赖,所以我仍然很高兴。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    • 1970-01-01
    相关资源
    最近更新 更多