为什么没有定义getEntityManager()? “无法解析方法getEntityManager”

时间:2014-10-10 18:29:23

标签: java android google-app-engine

我正在构建一个与谷歌appengine数据存储集成的Android应用程序,而不使用JDO。

我正在尝试构建一个允许我访问数据存储区中数据的端点。我写的函数如下,但我有一个奇怪的问题,尽管把这段代码放到端点java类...

我得到的错误是Cannot Resolve Method getEntityManager()

在我在网上看到的每个例子中,它都调用了这个函数。 - 所以必须有办法让它发挥作用,否则我必须做些傻事。

我错过了什么?我该如何解决这个

@Api(name = "getPostsApi", version = "v1", namespace = @ApiNamespace(ownerDomain = "endpoints.myModule.myCo.com",
        ownerName = "endpoints.myModule.myCo.com", packagePath=""))
public class GetPostsEndpoint {

    /**
     * This method lists all the entities inserted in datastore.
     * It uses HTTP GET method and paging support.
     *
     * @return A CollectionResponse class containing the list of all entities
     * persisted and a cursor to the next page.
     */
    @SuppressWarnings({"unchecked", "unused"})
    @ApiMethod(name = "GetPostsEndpoint")
    public CollectionResponse<NewPostBean> listStuff(
            @Nullable @Named("cursor") String cursorString,
            @Nullable @Named("limit") Integer limit) {


        EntityManager mgr = null;
        Cursor cursor = null;
        List<NewPostBean> execute = null;

        try {
            mgr = getEntityManager();   // <---- Breaks on this line

            //Query query = mgr.createQuery("select from Stuff as Stuff");
//                limit =1;

            //execute = (List<NewPostBean>) query.getResultList();
            //cursor = JPACursorHelper.getCursor(execute);
            //for (NewPostBean obj : execute)
            //    ;
        //} finally {
         //   mgr.close();
        //}

        return CollectionResponse.<NewPostBean>builder().setItems(execute).setNextPageToken(cursorString).build();
    }
}

1 个答案:

答案 0 :(得分:1)

当我查看here时,我发现他们通过创建此类实际获得了实体管理器:

public final class EMF {
    private static final EntityManagerFactory emfInstance =
        Persistence.createEntityManagerFactory("transactions-optional");

    private EMF() {}

    public static EntityManagerFactory get() {
        return emfInstance;
    }
}

然后他们调用EMF.get()来获取实体管理器。我只使用它,它的工作原理。你发现什么代码调用&#34; getEntityManager&#34;像那样的蓝色?根据您发布的代码,getEntityManager似乎根本没有定义