我正在从spring-boot 1.5.10升级到2.1.1。但是,出现以下错误“ IllegalArgumentException:类型为java.util.HashMap的目标bean不是持久实体的类型”。
这是我的课程:
@Document
public class AbstractMongoDocument extends AbstractPersistable<String> {
private static final long serialVersionUID = 1621100881694109722L;
@CreatedDate
private DateTime creationDate;
@LastModifiedDate
private DateTime modificationDate;
}
public abstract class AbstractAuditableMongoDocument extends AbstractMongoDocument {
private static final long serialVersionUID = 4962248712372390885L;
@Version
private Long version;
@LastModifiedBy
private String updatedBy;
@CreatedBy
private String createdBy;
}
public class Email extends AbstractAuditableMongoDocument {
private static final long serialVersionUID = 7601333678154632864L;
private String hashedEmail;
public Email() {
}
public Email(
String hashedEmail) {
this.hashedEmail = hashedEmail;
}
@Validated
@Document
public class Account extends AbstractMongoDocument {
private static final long serialVersionUID = -8228412296744241027L;
@Indexed(unique = true)
protected String primaryEmail;
Map<String, Email> emails = new HashMap<>();
}
此设置在mongodb上于1.5.10上运行良好,但不再起作用,并抛出了上面提到的java.lang.IllegalArgumentException。
答案 0 :(得分:0)
您必须将类型从long更改为Long。
Long是一个对象,可以通过java序列化机制对其进行序列化/反序列化。
如果模型中有HashMap,则应该只是Map。