0

リストを永続化しようとしていますが、このエラーが発生しています

org.hibernate.MappingException: Could not determine type for: java.util.List, at table: Person, for columns: [org.hibernate.mapping.Column(comments)]

休止状態のドキュメントで指定されている @ElementCollection アノテーションを使用しました。他に何を試すべきかわかりません。

この段落は、質問を送信するためだけに必要だったので無視してください。

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;




import org.hibernate.annotations.GenericGenerator;
import org.springframework.stereotype.Component;


@Component
@Entity
public class Person {
    private String name;

private Long id;
private String reviewName;
private String review;
private List<String> comments = new ArrayList<String>();


public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy="increment")
public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

@Column(columnDefinition="LONGTEXT")
public String getReview() {
    return review;
}

public void setReview(String review) {
    this.review = review;
}

public String getReviewName() {
    return reviewName;
}

public void setReviewName(String reviewName) {
    this.reviewName = reviewName;
}

public List<String> getComments() {
    return comments;
}

@ElementCollection
public void setComments(List<String> comments) {
    this.comments = comments;
}

public void addComment(String comment) {
    getComments().add(comment);
}

}

4

2 に答える 2

0

@elementcollectionアノテーションは、setterではなくgetter(getComments())に配置する必要があります

于 2012-11-22T17:12:16.280 に答える
0

問題は、あなたが持っているべきだということです

@ElementCollection(targetClass=String.class)

属性宣言とメソッド宣言の両方を含むコレクション型 (map/list/etc) のすべての言及の前。

ある人が別の「代わりに」言及する前ではなく、あらゆる場所で。

于 2015-05-29T11:51:35.333 に答える