Tôi đang sử dụng Goole App Engine để xây dựng API REST của tôi, tôi đã đánh dấu lớp học của tôi như PersistenceCapable và tôi cũng đã được xác định của tôi @PrimaryKey và cũng đánh dấu là @Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY), tôi cũng đã tạo EndPoints. nhưng khi tôi gõ vào cửa sổ thiết bị đầu cuối một lệnh curl để chèn một thực thể mới hoặc đăng ký nó không hoạt động. đây là đoạn code:Tạo Id Automatic IdGeneratorStrategy
@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Student{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
private String studentName;
....
....
....
}
đây là lệnh và phản hồi từ máy chủ địa phương của tôi curl. khi tôi cố gắng để chèn một thực thể mới
curl -H 'Content-Type: application/json' -d'{"studentName": "myname"}' htto://localhost:8889/_ah/api/utp/v1/student
và đây là phản hồi từ máy chủ địa phương.
"error" : {
"message" : "javax.jdo.JDOFatalInternalException: El valor de llave dado para construir una identidad de SingleFieldIdentity de tipo \"class javax.jdo.identity.LongIdentity\" para la clase \"class com.alex.wserver.Student\" es nulo.\nNestedThrowables:\norg.datanucleus.exceptions.NucleusException: El valor de llave dado para construir una identidad de SingleFieldIdentity de tipo \"class javax.jdo.identity.LongIdentity\" para la clase \"class com.alex.wserver.Student\" es nulo."
Tôi đã nghĩ rằng id được tạo tự động khi được chèn. nhưng điều đó không xảy ra ở đây. Không giống như các chèn một id cùng
- là lớp học của tôi sai?
- là yêu cầu POST/json của tôi Ok?
Xin cảm ơn trước.
và nhật ký nói gì? (Tôi cũng không thể đọc những chữ tượng hình mà bạn đã đăng ở trên; tôi thấy không có mã kiên trì Java ở đó, chẳng hạn như pm.makePersistent). – DataNucleus
Bạn có thể dán trực tiếp đoạn mã. Những hình ảnh này khá nhỏ và khó tìm ra. –
Tôi đã thay đổi hình ảnh bằng mã bị cắt ... xin lỗi vì hình ảnh xấu ... – AlexSanchez