2014-09-28 52 views
0

我有基類超類元素沒有返回與嗎啡和MongoDB類的球衣

@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中?

+0

這真的很糟糕,這種類型的問題沒有得到答覆...... Seemsvkike morphia基本錯誤對我來說。你有沒有發現如何使這項工作? – 2014-12-27 01:20:02

回答

0

我相信你還需要用@Entity註解基類。它爲我工作(使用嗎啡0.109)。