【问题标题】:There must be an @Id field (String, Long, or long)必须有一个@Id 字段(String、Long 或 long)
【发布时间】:2012-11-10 23:18:10
【问题描述】:

我一直在想办法解决这个问题:

There must be an @Id field (String, Long, or long)

虽然类中有@Id注解。我试过做 mvn clean,Eclipse 项目 clean,没有编译时错误。但是,当我运行我的应用程序并尝试保留已注册的实体时,我收到此错误。

我正在使用 Objectify-4 并使用 OfyLoader 模式。

代码:

import java.util.List;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id;

@Entity
public class TestEntity {
    @Id
    private Long id;
    private List<String> strList;

    public TestEntity() {}

    public TestEntity(List<String> strList){
        this.setStrList(strList);
    }

    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public List<String> getStrList() {
        return strList;
    }
    public void setStrList(List<String> strList) {
        this.strList = strList;
    }
}

【问题讨论】:

  • 当然,我已经用实体代码更新了我的问题,我实际上创建了一个新的 TestEntity 只是为了测试一下,仍然有同样的问题。
  • 我猜你需要从其他地方导入@Id
  • 类路径上还有没有旧的 (objectify3) jar?假设您致电register(TestEntity.class),您的代码似乎没有任何问题。如果您仍然需要帮助,可以尝试发布错误的完整堆栈跟踪。

标签: java google-app-engine objectify


【解决方案1】:

确保 objectify 4 在您的类路径中,并且唯一的 id 导入是:

import com.googlecode.objectify.annotation.Id;

【讨论】:

    【解决方案2】:

    您应该首先打包然后运行您的项目。因为如果你jetty run,比如run操作看不到注解

    【讨论】:

      猜你喜欢
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      相关资源
      最近更新 更多