2011-07-21 56 views
1

我不喜歡使用Java,所以我需要一些幫助。我正在使用Play框架。將字段注入到Java JPA字段

我有一個與像以下領域延伸GenericModel實體類:

@Column(name = "description") 
private String description; 

我想用一個消氣劑添加其他字段,我們稱之爲getToString,基本上包含了一個只讀字符串實體的字符串表示。

我需要這個,因爲對象是作爲JSON響應發送的,我的JavaScript將讀取此字段,並將其顯示在例如實體需要表示爲字符串的位置。

我該如何去做這件事?

+0

其他人對此有何看法? –

+0

我們的問題是與GsonBuilder!我們的版本不支持getter和setter。 –

+0

你能解釋一點嗎 - 你需要新的財產作爲一個領域,或作爲一個吸氣,或兩者兼而有之?爲什麼? –

回答

1

,當我遇到的問題是使用GsonBuilder的副作用調用它。構建器似乎不解析getter和setter,除非庫的源被修改,我不願意這樣做。

2

我不是Play框架的專家,但可能你應該看看@Transient註解。

標記爲@Transient的字段(以及使用JPA屬性訪問的getter/setter)將被JPA忽略,但通常會被其他框架考慮。

+0

我用@Transient添加了一個成員變量,它顯示在我的JSON響應中!尼斯。它不會顯示爲成員函數。嘗試實現爲getToString() –

+0

Play完全忽略了我的getter方法。該成員變量工作正常,但當然,我需要一種方法... –

+0

抱歉約瑟夫,我是JPA的專家,但不是在Play框架。 –

0

爲了我的理解(如果我錯了,請糾正我)你想要一個只讀方法,它將返回實體的字符串表示形式(JSon格式)。

你可以只覆蓋默認的toString方法:

@Override 
public String toString() { 
    return "your_json_string"; 
} 

,需要

+0

不,我需要將它添加爲一個額外的只讀字段,稱爲toString,或任何事情。 實體使用GsonBuilder進行序列化,並且我需要toString只是另一列,其中包含作爲附加字段的字符串。 如果我重寫toString方法,它不會顯示在我的JSON響應中。 –