2011-04-18 65 views
4

我有我保存到數據庫中的頂級元素,它有幾個外來元素,像這樣:ORMLite外籍院士更新

@DatabaseTable 
public class Parent { 
    @DatabaseField(id = true, index = true) 
    public Integer id; 

    @DatabaseField(foreign = true) 
    public ChildA a; 
} 

@DatabaseTable 
public class ChildA { 
    DatabaseField(generatedId = true, index = true) 
    public Integer id; 

    @DatabaseField 
    public boolean something; 
} 

這些已經在數據庫中創建的假設。現在我想更新它們。將調用parentDao.update(parent)兩個更新?還是我需要手動更新孩子?

回答

7

簡短的回答是:

沒有,也不會更新兩個

異物不能代理對象,所以沒有辦法對ORMLite來確定子對象有已被修改並需要更新。所以,如果你改變了ParentChildA對象都那麼你就必須做一些事情,如:

childADao.update(parent.a); 
parentDao.update(parent); 

顯然,如果你對父母設置 ChildA那麼它將更新父表這一新的ID 。