Khi tôi tạo lớp xác định cả hai "gae.encoded-pk" và "gae.pk-id" liên tục, mã hóa-pk được cập nhật, nhưng id vẫn là null . Không có ngoại lệ được ném và mã là một bản sao dán thẳng từ tài liệu của google, vì vậy tôi đang ở một mất mát như những gì có thể xảy ra ở đây.Datanucleus gae.pk-id không được điền trên makePersistent
class chứa các:
@PersistenceCapable
public class MyClass {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String encodedKey;
@Persistent
@Extension(vendorName="datanucleus", key="gae.pk-id", value="true")
private Long keyId;
Và tôi làm cho nó dai dẳng như thế này:
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(myInstance);
// myInstance = pm.makePersistent(myInstance); - Produces the same result.
} finally {
pm.close();
}
Tôi đang sử dụng trình gỡ lỗi để bước qua mã này, nhưng keyId vẫn null, ngay cả sau khi người quản lý kiên trì bị đóng.
Tôi cũng nên chỉ ra rằng điều này đang chạy cục bộ bằng cách sử dụng bộ công cụ phát triển appengine của google. Bất kỳ con trỏ như thế nào tôi có thể gỡ lỗi này sẽ được đánh giá rất nhiều!
cùng một vấn đề ở đây – craigrs84