Java 尝试将类映射到playframwork上的文档时出现MarshallingException

Java 尝试将类映射到playframwork上的文档时出现MarshallingException,java,playframework,runtime-error,unmarshalling,jongo,Java,Playframework,Runtime Error,Unmarshalling,Jongo,我正在用Java编写一个Play 2.3.2应用程序,并使用Jongo作为MongoDB的驱动程序。 在对代码进行一些更改之后,我的应用程序会给我运行时错误。 错误被赋予getUser方法的第四行。 这是我用过的代码: public static User getUser(String email) { Jongo jongo = MongoFactory.getJongo(); MongoCollection users = jongo.getCollectio

我正在用Java编写一个Play 2.3.2应用程序,并使用Jongo作为MongoDB的驱动程序。 在对代码进行一些更改之后,我的应用程序会给我运行时错误。 错误被赋予getUser方法的第四行。 这是我用过的代码:

public static User getUser(String email) {
        Jongo jongo = MongoFactory.getJongo();
        MongoCollection users = jongo.getCollection(USERS_COLLECTION);
        return users.findOne("{email: '"+email +"'}").as(User.class);
}
模块
类添加到
公司
后,上述行中的方法
as
无法解组
查找
的结果

public class User {
    //... some fields ...
    private Company company;
    //... constructor using all fieds ...
    //... getters and setters for all fields ...
}

public class Company {
    //... some fields ...
    private List<Module> modules;
    //... constructor using all fieds ...
    //... getters and setters for all fields ...

    public class Module {
        private String name;
        private Date createTime;
        private Date expireTime;
        private Map<String, Object> options;

        //... constructor using all fieds ...
        //... getters and setters for all fields ...
    }

}

Jackson无法实例化模块,因为它不知道如何调用模块构造函数。 您可以在每个构造函数参数上添加默认的私有空构造函数或@JsonProperty注释:

@JsonCreator
public Module(@JsonProperty("name") String name, @JsonProperty("createTime") Date createTime, @JsonProperty("expireTime")Date expireTime, @JsonProperty("options") Map<String, Object> options) {

如果您可以添加所需的所有内容,例如导入和函数的包含代码,那就太好了
@JsonCreator
public Module(@JsonProperty("name") String name, @JsonProperty("createTime") Date createTime, @JsonProperty("expireTime")Date expireTime, @JsonProperty("options") Map<String, Object> options) {
private Module() {//hidden jackson constructor}