2017-02-20 60 views
0

這裏我的問題的一個例子:關係映射的字段值NULL

我有所謂的「人」的實體(名稱:字符串CityId:整數) 我有「人」之間的關係,「城」 ,名爲「toCity」。 我用於在ObjEntity定義中添加「CityId」字段(使用Cayenen編輯器),因爲我需要它用於其他目的(我需要同時生成方法person.setCityId()和person.setToCity())

但有時(並非總是),當我獲取一個Person實體時,我得到一個NULL值爲CityId字段(即使被賦值),而關係「toCity」被正確提取。

這樣:

person.getCityId() 而 person.toCity()getCityId()看好

如果我錯了返回NULL?

回答

0

我總是試圖避免將FK列映射爲對象屬性,因此我很難分辨爲什麼它不起作用(通常Cayenne不保證這種「冗餘」映射將起作用)。但是,下面是一種解決方法,可以讓您在不丟失功能的情況下取消映射該屬性:

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