0
@XmlRootElement
public abstract class BaseDO {
@Id
protected ObjectId id;
/**
* We'll only provide getters for these attributes, setting is done in @PrePersist.
*/
protected Date creationDate;
protected Date lastChange;
.....和用戶類爲:
@Entity(value = "user", noClassnameStored = true)
@XmlRootElement(name = "user")
@XmlSeeAlso({BaseDO.class})
public class AtsUser extends BaseDO {
public static enum UserStatus {
CREATED, ACTIVE, INACTIVE, DELETED, CLOSED
}
@Indexed(unique = false)
private String firstName;
@Indexed(unique = false)
private String lastName;
@Indexed(unique = false)
private String email;
private String password;
@Embedded
private List<UserRoleDO> roles = new ArrayList<UserRoleDO>();
// private String userId; //TODO add this later
private UserStatus status;
private String success;
.....
的REST API如下:
@Path("user/validate")
public class AtsUserValidationService {
private AtsUserDao dao;
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
@GET @Path("/query")
@Produces(MediaType.APPLICATION_JSON)
public AtsUser getUserByEmailn(@QueryParam("email") String email) {
System.out.println("in getUserByEmailn");
dao = new AtsUserMongodbDao();
System.out.println("firstName " + email);
AtsUser atsUser = dao.getAtsUsersByEmail(email) ;
return atsUser ;
}
....
的嗎啡道如下:
@Override
public AtsUser getAtsUsersByEmail(String email) {
AtsUser atsUser = null;
if ((email == null) || email.isEmpty() ) {
return null;
}
System.out.println("getAtsUsersByEmail:" + email);
Query<AtsUser> query = mongoDatastore.find(AtsUser.class);
query.field("email").equal(email);
atsUser = query.get();
return atsUser;
}
.....
當我調試,我看到在Java代碼中的ID字段和creationDate領域,但JSON不包含那個。這是我的JSON的樣子。
{
"id": null,
"code": "admin",
"desc": "admin",
"email": "[email protected]",
"firstName": "admin",
"lastName": "admin",
"password": "admin",
"status": "CREATED"
}
爲什麼我的id爲空,我如何從基類中獲取元素以顯示在JSON中?
這真的很糟糕,這種類型的問題沒有得到答覆...... Seemsvkike morphia基本錯誤對我來說。你有沒有發現如何使這項工作? – 2014-12-27 01:20:02