2016-07-29 141 views
0

問題映射到一個已經持久化的對象

我有兩個clasess - ProfileImage

現在Profile擁有Image

class Profile{ 
.. 
.. 
Image image; 
.. 
.. 


getters and setters 

.. 
} 

現在的實例變量,情景是

1)圖像已保存在圖像表中 - 因爲它是使用單獨保存的類'defualt save()方法。

class Image{ 

@Id 
@GeneratedValue 
private Long id; 
private String name; 
private String url; 

.. 
.. 

//getters and setters 
} 

2)在保存Profile - 我在進入Profile對象JSON

3)現在,由於圖片的URL被嵌入的對象在JSON圖像的URL - 在保存Profile

我得到跟隨錯誤。

org.hibernate.TransientPropertyValueException:對象引用一個未保存 例如瞬時 - 前 沖洗保存瞬態的實例

它正在發生,因爲它正試圖保存傳入嵌入式Image對象Profile JSON沒有CASCADE - 但這不是這裏的目的。

我只想將ASSIGN已保存的\ persisted Image對象改爲Profile

在這裏做什麼?

JSON: 
     { 
     .. 
     .. 
     "profile":{ 
        "name":"fsdf", 
        "image":{ 
           "name":"sdfsd", 
           "url":"http://....." 
          } 
        } 

    .. 
    .. 

回答

0

爲什麼不根據傳入的JSON從數據庫中查找Image

一個非常幼稚和簡單的例子:

public class Controller { 
    public void someProfileMethod(String profileJson) { 
    final Profile profile = // create profile from JSON 
    final Image image = imageService.getImageByName(profile.image.name); 
    if (image != null) { 
     profile.setImage(image); 
    } 
    else { 
     profile.setImage(null); 
    } 
    profileService.saveProfile(profile); 
    } 
} 
相關問題