(java1.6、hibernate、mySql)(Hibernate)リストセマンティクスをリストに使用する方法<String>?
文字列のリストを含むJavaクラスを永続化しようとしています。問題は、私がそれをフェッチするとき、私はListまたはPersistentListの代わりにPersistentBagを取得することです。私は答えや例を探しましたが、私はもっと混乱しました。
私が使用小さなテストケースを有する:第一
(のassertEquals(実際、予想))中に問題が最初のassertEquals作品として見ることができる
@Test
public void testFind() {
FooEntity expected = createFoo();
FooEntity actual = dao.find(expected.getId());
assertEquals(expected, actual);
assertEquals(actual, expected);
}
を、失敗しました。これはListがPersistentBagとして取得されるために発生します。
ここで何が間違っているのか分かりますか?あなたは私を助けてくれますか?ここ
が私のコードです:
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "EXAMPLE4_FOO")
public class FooEntity {
@Id
@GeneratedValue
@Column(name = "ID")
private int id;
@Column(name = "LIST")
@ElementCollection(fetch = FetchType.EAGER)
private List<String> strings = new ArrayList<String>();
public FooEntity() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public List<String> getStrings() {
return strings;
}
public void setStrings(ArrayList<String> strings) {
this.strings = strings;
}
/*
equals() and hashCode() ....
*/
}