关系映射字段的值为NULL

时间:2017-02-20 11:03:22

标签: apache-cayenne

这是我的问题的一个例子:

我有一个名为“Person”的实体(Name:String.CityId:Integer) 我有“人”和“城市”之间的关系,名为“toCity”。 我用来在ObjEntity定义中添加“CityId”字段(使用Cayenen编辑器)因为我需要它用于其他目的(我需要生成方法person.setCityId()和person.setToCity())

但有时(并非总是)当我获取Person实体时,我得到CityId字段的NULL值(即使被赋值),而正确获取“toCity”关系。

所以:

person.getCityId()返回NULL 而 person.toCity()。getCityId()被重视

我哪里错了?

1 个答案:

答案 0 :(得分:0)

我总是试图避免将FK列映射为对象属性,因此我很难说出它为什么不起作用(通常Cayenne不保证这样的"冗余"映射将起作用)。但是,这是一种解决方法,允许您在不丢失功能的情况下取消映射该属性:

class Person extends _Person {
   public int getCityId() {
      return getCity() != null ? Cayenne.intPkForObject(getCity()) : -1;
   }
}