我正在使用Morphia和MongoDB。提取数据时,将使用不带参数的默认构造函数创建对象,然后使用反射将字段初始化(Kryo和Jackson等序列化库也将执行此操作)。这样,就不可能根据构造函数内部字段的值添加代码(因为它们尚未使用数据库中的数据进行初始化)。我想知道在获取和创建对象之后是否有一种方法可以运行其他代码,而不需要在之后手动调用方法?原因是我正在存储对象的部分数据,并基于它自己的数据和许多引用来初始化其他临时字段。我目前可以提出4种选择:
我目前正在使用1.,但是我应该使用3还是4进行辩论。但是,如果有更好的方法可以在创建对象之后运行某些代码,我想知道。
答案 0 :(得分:1)
您可以使用@PostLoad
来运行initialize()
,当将数据加载到新实例f中后,Morphia会自动为您调用该方法