您如何发回另一个实体拥有的JPA实体的子集?

Gui*_*rum 12 java json openjpa

我有一个拥有另一个实体的实体:

//psuedocode    
public class ClassA{
   private String name;

   @OneToOne
   private ClassB classb;
}

public class ClassB{
   private String thing1;
   private String thing2;
   private String thing3;
}
Run Code Online (Sandbox Code Playgroud)

当我检索ClassA对象时,我不想看到ClassB.thing3,但我确实想看到thing1和thing2:

{
"name":"classa",
"classb":{
         "thing1":"hi",
         "thing2":"there"
        }
}
Run Code Online (Sandbox Code Playgroud)

但如果我查询ClassB,我想看到一切:

{"thing1":"hi",
 "thing2":"there",
 "thing3":"joseph"}
Run Code Online (Sandbox Code Playgroud)

所以我不能只在thing3上放一个忽略注释,因为那时我会在第二次获取时忽略它.我尝试了Converter<ClassB>,但是这迫使我实施toString()fromString()对JSON,其死亡的JSON对象转换为Java端(转换器需要一个字符串,但得到的对象,而不是).

我想尽可能避免自己构建/解析JSON对象,如果可能的话让我的json提供者完成工作.我在约翰逊.

zil*_*ani 1

这是可能的,你需要使用@NamedEntityGraph,

这应该有帮助,http://www.thoughts-on-java.org/jpa-21-entity-graph-part-1-named-entity/