0

我正在使用 Kundera 在 MongoDB 中进行持久化。我可以在我的集合中保留一些文档,但是每次我尝试通过 id 查找特定文档时,我都会收到此错误

 java.lang.ClassCastException: java.lang.String cannot be cast to com.mongodb.BasicDBList
com.impetus.kundera.persistence.AbstractEntityReader.findById(AbstractEntityReader.java:95)
com.impetus.client.mongodb.MongoEntityReader.findById(MongoEntityReader.java:72)
com.impetus.kundera.lifecycle.states.ManagedState.handleFind(ManagedState.java:com.impetus.kundera.graph.Node.find(Node.java:500)
com.impetus.kundera.persistence.PersistenceDelegator.find(PersistenceDelegator.java:225)
com.impetus.kundera.persistence.PersistenceDelegator.findById(PersistenceDelegator.java:174)
com.impetus.kundera.persistence.EntityManagerImpl.find(EntityManagerImpl.java:263)

我的班级定义是

package data.additional;

import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.google.common.collect.Lists;

@Entity
@Table(name = "reference", schema = "RcordsDB@pl_records")
public class Reference {

@Id
@Column(name="idReference")
private String idReference;

@Column(name="profile_id")
private String profile_id;

@Column(name="group_id")
private String group_id;

@Column(name="created")
private Date created;

@Column(name="last_modified")
private Date last_modified;

@Column(name="identifiers")
private List<String> identifiers = Lists.newArrayList();

@Column(name="abstractText")
private String abstractText;

@Column(name="tags")
private String tags;

@Column(name="type")
private String type;

@Column(name="source")
private String source;

@Column(name="title")
private String title;

@Column(name="title")
private List<String> authors = Lists.newArrayList();

@Column(name="year")
private Date year;

@Column(name="volume")
private String volume;

@Column(name="issue")
private String issue;

@Column(name="pages")
private String pages;

@Column(name="series")
private String series;

@Column(name="chapter")
private String chapter;

@Column(name="websites")
private String websites;

@Column(name="accesed")
private String accesed;

@Column(name="publisher")
private String publisher;

@Column(name="city")
private String city;

@Column(name="edition")
private String edition;

@Column(name="institution")
private String institution;

@Column(name="editors")
private List<String> editors = Lists.newArrayList();

@Column(name="keywords")
private List<String> keywords = Lists.newArrayList();

@Column(name="doi")
private String doi;

@Column(name="isbn")
private String isbn;

@Column(name="issn")
private String issn;

public String getIdReference() {
    return idReference;
}

public void setIdReference(String idReference) {
    this.idReference = idReference;
}

public String getProfile_id() {
    return profile_id;
}

public void setProfile_id(String profile_id) {
    this.profile_id = profile_id;
}

public String getGroup_id() {
    return group_id;
}

public void setGroup_id(String group_id) {
    this.group_id = group_id;
}

public Date getCreated() {
    return created;
}

public void setCreated(Date created) {
    this.created = created;
}

public Date getLast_modified() {
    return last_modified;
}

public void setLast_modified(Date last_modified) {
    this.last_modified = last_modified;
}

public List<String> getIdentifiers() {
    return identifiers;
}

public void setIdentifiers(List<String> identifiers) {
    this.identifiers = identifiers;
}

public String getAbstractText() {
    return abstractText;
}

public void setAbstractText(String abstractText) {
    this.abstractText = abstractText;
}

public String getTags() {
    return tags;
}

public void setTags(String tags) {
    this.tags = tags;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public String getSource() {
    return source;
}

public void setSource(String source) {
    this.source = source;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public List<String> getAuthors() {
    return authors;
}

public void setAuthors(List<String> authors) {
    this.authors = authors;
}

public Date getYear() {
    return year;
}

public void setYear(Date year) {
    this.year = year;
}

public String getVolume() {
    return volume;
}

public void setVolume(String volume) {
    this.volume = volume;
}

public String getIssue() {
    return issue;
}

public void setIssue(String issue) {
    this.issue = issue;
}

public String getPages() {
    return pages;
}

public void setPages(String pages) {
    this.pages = pages;
}

public String getSeries() {
    return series;
}

public void setSeries(String series) {
    this.series = series;
}

public String getChapter() {
    return chapter;
}

public void setChapter(String chapter) {
    this.chapter = chapter;
}

public String getWebsites() {
    return websites;
}

public void setWebsites(String websites) {
    this.websites = websites;
}

public String getAccesed() {
    return accesed;
}

public void setAccesed(String accesed) {
    this.accesed = accesed;
}

public String getPublisher() {
    return publisher;
}

public void setPublisher(String publisher) {
    this.publisher = publisher;
}

public String getCity() {
    return city;
}

public void setCity(String city) {
    this.city = city;
}

public String getEdition() {
    return edition;
}

public void setEdition(String edition) {
    this.edition = edition;
}

public String getInstitution() {
    return institution;
}

public void setInstitution(String institution) {
    this.institution = institution;
}

public List<String> getEditors() {
    return editors;
}

public void setEditors(List<String> editors) {
    this.editors = editors;
}

public List<String> getKeywords() {
    return keywords;
}

public void setKeywords(List<String> keywords) {
    this.keywords = keywords;
}

public String getDoi() {
    return doi;
}

public void setDoi(String doi) {
    this.doi = doi;
}

public String getIsbn() {
    return isbn;
}

public void setIsbn(String isbn) {
    this.isbn = isbn;
}

public String getIssn() {
    return issn;
}

public void setIssn(String issn) {
    this.issn = issn;
}

}
4

1 回答 1

0

昆德拉方面没有错误。错误在实体类中。您为这两个字段提供了相同的列名。

@Column(name="title")
private List<String> authors = Lists.newArrayList();

@Column(name="title")
private String title;

更新该名称,您的代码将正常工作。

于 2015-11-24T05:12:58.677 回答