【发布时间】:2014-03-05 11:39:23
【问题描述】:
我有实体类“用户”,如下所示,但它不生成主键。我在我的应用引擎应用程序中使用JPA,并在我的安卓客户端中使用应用引擎端点。
实体类:
@Entity
public class UserMaster {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId;
private String userName;
private String fullName;
private String userAvtarUrl;
private String userAbout;
private String userGender;
public String getUserName() {
return userName;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getUserAvtarUrl() {
return userAvtarUrl;
}
public void setUserAvtarUrl(String userAvtarUrl) {
this.userAvtarUrl = userAvtarUrl;
}
public String getUserAbout() {
return userAbout;
}
public void setUserAbout(String userAbout) {
this.userAbout = userAbout;
}
public String getUserGender() {
return userGender;
}
public void setUserGender(String userGender) {
this.userGender = userGender;
}
}
端点持久化代码:
@ApiMethod(name = "insertUserMaster")
public UserMaster insertUserMaster(UserMaster usermaster) {
EntityManager mgr = getEntityManager();
try {
if (containsUserMaster(usermaster)) {
throw new EntityExistsException("Object already exists");
}
mgr.persist(usermaster);
} finally {
mgr.close();
}
return usermaster;
}
安卓客户端
Userendpoint.Builder builder = new Userendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(), new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) {
}
});
Userendpoint endpoint = CloudEndpointUtils.updateBuilder(
builder).build();
User objUser = new User();
objUser.setUserName(txtName.getText().toString());
objUser.setUserEmail(txtEmail.getText().toString());
Bitmap bmp = BitmapFactory.decodeFile(imagePath);
ByteArrayOutputStream out = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, out);
byte[] imgByte = out.toByteArray();
String encodedImage = Base64.encodeToString(imgByte,
Base64.DEFAULT);
objUser.setImage(encodedImage);
User result = endpoint.insertUser(objUser).execute();
请指导我在我缺乏的地方。谢谢。
【问题讨论】:
标签: java android google-app-engine jpa google-cloud-datastore