【问题标题】:mongoDb morphia POJO property with read only access具有只读访问权限的 mongoDb morphia POJO 属性
【发布时间】:2015-02-19 08:03:01
【问题描述】:

我在 morphia 中创建了一个 POJO 类来将数据对象保存到 MongoDB,

我有一个名为“unitPrice”的属性,我想将其保留为只读属性,这意味着一旦保存到 mongo 就不允许修改 DB 值,
是否有 morphia 注释可以执行此操作,
是否可以在运行时将 @NotSaved 注释绑定到属性?

这是我的 POJO

@Entity("items")  
public class Items  {
 private int id;
 private int sequence;
 private int unitPrice;  
}

谢谢
BR
爱罗

【问题讨论】:

  • 澄清一下,您是否希望数据库强制 unitPrice 值一旦保存就不能修改?或者只是您的 Java 代码一旦设置就无法更改?
  • 我想强制数据库保持初始值,不改变它
  • MongoDB 不会对此类字段实施限制,唯一的例外是文档的 _id 是不可变的。将价格放入_id 是不合理的,因此您只需要确保您的应用程序不会修改价格字段即可。
  • 感谢 wdberkeley,但我正在通过 morphia 访问 mongo,我想知道有没有办法从 morphia 做到这一点?

标签: java mongodb pojo morphia


【解决方案1】:

我不知道在运行时绑定@NotSaved 的方法,但我可以想到一个(hacky)解决方法:

  • 在构造函数中设置属性(Morphia 仍然需要无参数构造函数)
  • 不提供setter,只提供属性的getter

它不漂亮,但它应该可以完成工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2023-04-03
    • 1970-01-01
    • 2023-03-03
    • 2012-05-29
    相关资源
    最近更新 更多