0

PDFで作業するクラスがあります

@PersistenceCapable
public class GoogleDrivePDF {

        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;

        @Persistent
        private String pdfName;

       ... geter, seter...

}

データを読み書きするには、次のようにします。

GoogleDrivePDF pdf = new GoogleDrivePDF();
 key=KeyFactory.createKey(GoogleDrivePDF.class.getSimpleName(),"0B1IQEoiXFg3IWHhJNEtlMzlvQWs");
 pdf.setKey(key);           
 pdf.setPdfName("NAME");
 pm.makePersistent(pdf); 

そして読むために:

 pdf  = pm.getObjectById(GoogleDrivePDF.class,  "0B1IQEoiXFg3IWHhJNEtlMzlvQWs1");

すべてが機能します!

今、私はOne:Manyの現実を創造します。

    @PersistenceCapable
    public class UsersPDFDocuments {

        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;

        @Persistent
        private List<GoogleDrivePDF> pdfs;

        ... seter, geter...
}

そして私はデータベースに書き込みます:

         List <GoogleDrivePDF> pdfFilesDao=...
         GoogleDrivePDF pdf = new GoogleDrivePDF();
         Key key= KeyFactory.createKey(GoogleDrivePDF.class.getSimpleName(), "0B1IQEoiXFg3IWHhJNEtlMzlvQWs1");
         pdf.setKey(key);
         pdf.setVerifyed(false);
         pdf.setPdfName("mari123");
         pdfFilesDao.add(pdf);  

         key= KeyFactory.createKey(UsersPDFDocuments.class.getSimpleName(), "mail@mail");
         UsersPDFDocuments userData = new UsersPDFDocuments();
         userData.setKey(key);
         userData.setPdfs(pdfFilesDao);

         pm.makePersistent(userData); 

OK、すべてが機能します。 しかし、今はPDFデータを読むことができません!

エラーがあります:

HTTP ERROR 500

Problem accessing /test. Reason:


     Could not retrieve entity of kind GoogleDrivePDF with key GoogleDrivePDF("0B1IQEoiXFg3IWHhJNEtlMzlvQWs1")
    Caused by:

    javax.jdo.JDOObjectNotFoundException: Could not retrieve entity of kind GoogleDrivePDF with key GoogleDrivePDF("0B1IQEoiXFg3IWHhJNEtlMzlvQWs1")

しかし、私がしていたように、私は同じことをします:

 Key key = KeyFactory.createKey(GoogleDrivePDF.class.getSimpleName(), "0B1IQEoiXFg3IWHhJNEtlMzlvQWs1");
         GoogleDrivePDF pdf = pm.getObjectById(GoogleDrivePDF.class,    key);

ここに画像の説明を入力

私がテストしていたとき、値を取得するには、暗号化されたキーの文字列が必要です。(画像参照) agtsdHYtY2hlY2tlcnJoCxIRVXNlcnNQREZEb2N1bWVudHMiIXZha2h0YW5nLmtvcm9naGxpc2h2aWxpQGdtYWlsLmNvbQwLEg5Hb29nbGVEcml2ZVBERiIcMEIxSVFFb2lYRmczSVdIaEpORXRsTXpsdlFXcww

Unowned を追加すると動作します! どうして?!

@Unowned
    @Persistent
    private List<GoogleDrivePDF> pdfs;
4

0 に答える 0