我正在构建一个无需使用JDO即可与google appengine数据存储集成的android应用。

我正在尝试建立一个端点,该端点将允许我访问数据存储中的数据。我正在编写的函数在下面,但是我遇到了一个奇怪的问题,尽管将此代码放入了端点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();
    }
}

最佳答案

当我查看here时,我看到他们实际上是通过创建此类来获得实体管理器的:

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

    private EMF() {}

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


然后,他们调用EMF.get()以获取实体管理器。我只是用它,它的工作原理。您发现什么代码会像这样突然调用“ getEntityManager”?根据您发布的代码,getEntityManager似乎根本没有定义

09-11 17:15