2017-04-26 63 views
0

我有許多Spring實體,它們共享一些共同的列(創建,修改)。現在,我已經創建了一個@Embeddable類,持有這些價值觀,我把它們插入到每個實體@ Spring Entity中的嵌入列

@Embedded 
private MyEmbeddedClass myEmbeddedClass; 

一切工作正常爲止。現在,當我看locahost:8080/api/myEntity 我看到我的實體,它擁有如下示例中的數據:

{ 
    "firstName" : "Jack", 
    "surname" : "London", 
    "myEmbeddedClass" : { 
    "created" : "2017-04-25T07:09:20.092+0000", 
    "modified" : null 
    }, 
    //links and stuff 
} 

所以它像一個嵌套的JSON。我可以讓它「不受干擾」嗎? :)

+0

爲您的響應類創建一個單獨的DTO並手動設置字段。 –

回答

0

你的問題的解決方案不能是直接的。然而考慮這些選項:

  • 寫爲getCreated()getModified() [無論嵌入字段] getter方法直接返回像getId().getCreated()
  • 寫投影的主要實體[見@Projection]像下面:

@Projection(名稱= 「extractedTimestamp」,類型= {Person.class})

interface ExtractedPersonTimestamp{ 

String getFirstName(); 
String getSurName(); 
String getCreated(); 
String getModified(); 
} 

@RepositoryRestResource(excerptProjection = ExtractedPersonTimestamp.class) 
interface PersonRepository extends CrudRepository<Person, PersonPK> {}//PersonPK assumed to be embedded class 

我還沒有試過這個。但我想,這應該給它一些解決方案。