Google Objectify v4由id获取

Fre*_*her 4 gwt objectify

我正在尝试使用Objectify v4在App Engine中获取实体,但它不起作用.

  • 我的@Entity:Translation.class
  • @Entity的@Id我想要获取:301L

我的@Entity:

@Entity
public class Translation {
  @Id
  private Long id;
  private String text;

  public String getText() {
    return text;
  }

  public Long getId() {
    return id;
  }

  public void setText(String text) {
    this.text = text;
  }
}
Run Code Online (Sandbox Code Playgroud)

不说的请求:

Translation translation =ObjectifyService.ofy().load().type(Translation.class).id(301L).get(); // translation is null
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

 Translation translation = ObjectifyService.ofy().load().type(Translation.class).first().get(); // translation is not null
Run Code Online (Sandbox Code Playgroud)

然后:

System.out.println(translation.getId()); // translation id equal 301
Run Code Online (Sandbox Code Playgroud)

所以idfetch似乎不起作用.问题出在哪儿?

Tha*_*ris 5

由于您的实体有一个@Parent字段,为了通过id获取它,您需要执行:

Translation translation = ObjectifyService.ofy().load().type(Thing.class).parent(par).id(301).get();
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Objectify Basic Operations - Loading

希望这可以帮助!