2011-11-02 32 views
5

我有以下實體:持久性的異常使用POJO中發揮框架控制器綁定時

@Entity 
public class Client extends Model{ 
    public String email; 
    public String password; 
} 

我有以下控制器:

public static void clientSignUp(models.Client client) 
{ 
    info("Client email" + client.email); 
    info("Client password" + client.password); 
    client.create(); 
} 

當這個控制器被調用時,兩個日誌打印出來正確。但client.create行錯誤與此休眠例外:

PersistenceException occured : org.hibernate.PropertyAccessException: 
    could not get a field value by reflection getter of models.Client.email 

然而,當我稍微改變代碼:

public static void clientSignUp(models.Client client) 
    { 
    models.Client client2 = new Client(); 
    client2.email= client.email; 
    client2.password = client.password; 
    client2.create(); 
    } 

它的工作原理。任何想法爲什麼?

回答

0

如果您將第一個版本中的client.create();更改爲client.save();,該怎麼辦?

0

我認爲這裏有一個錯誤。我使用.merge()代替.save()來解決類似的問題(通過user.email得到了相同的異常)

事後,我實際上可以移除merge()並使用save()這是非常奇怪的(即使在服務器重啓後)。 必須緩存一些東西。

所以儘量client.merge()

2

我可能會遲到回答這幾個月,但我遇到了類似的問題,並能夠解決它。爲了得到正確的環境,這裏是我的環境:

  1. 我正在初始化模型實例的引導程序Job
  2. 我在DEV模式,因此使用的內存數據庫(db=mem

我嘗試了所有上述選項(.create().save().merge()) - 它沒有一個爲我工作。申請也沒有重新開始。

最後,訣竅是清除/tmp目錄並重新啓動應用程序。