0
問題:我試圖避免將某些類屬性作爲xml元素包含在GET
請求中,但要在POST
請求上進行識別。只有當方法消耗xml/json時才需要JAXB元素
我班的簡化版本(僅在必要的東西):
@XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
public class User implements Serializable{
private String username;
private String password;
...
@XmlTransient //prevent password to be inserted in XML/JSON on GET requests.
public String getPassword() {
return password;
}
}
我用@XmlTransient
爲了防止密碼(事件雖然保持作爲哈希)走出上GET
請求。
所以對於一個請求(比方說)localhost:8080/app/user/John
它纔會返回(爲簡單起見)
<user>
<username>John</username>
</user>
但是當我嘗試把一些XML/JSON(比方說:):
<user>
<username>John</username>
<password>Doe</password>
</user>
密碼進行的忽略,因爲@XmlTransient
註釋:
@POST
@Consumes(value = {"application/xml", "application/json"})
public void insertUser(User user){
em.persist(user); //ERROR because User#password is NULL
}
我想知道是否有我的p A的解決方法roblem。
是不是純粹的JAXB解決方案? (但仍然避免使用2個DTO,因爲我覺得有點醜陋,爲此僅使用一個DTO ......) – Daniel
據我所知,這裏沒有純粹的JAXB解決方案(除了第2項) –
好的,謝謝你先生。 – Daniel