我想映射一个实体包含一个集合,而不使用JoinTable。 我保持有例外的情况是: org.hibernate.AnnotationException:使用@OneToMany或@ManyToMany针对未映射类:Foo.collection [java.lang.String中]休眠异常:试图映射集合OneToMany无JoinTable
我知道,它的工作原理与JoinTable,但后来我得到2张桌子,而我只需要一张桌子。我知道如果它有效,那么我会在表格中多次使用“名称”(集合中的每个元素都有一个)。
我看着文档中(http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html#entity-mapping-association参见:2.2.5.3.1.2单向和http://docs.oracle.com/javaee/6/api/javax/persistence/OneToMany.html)和许多例子,但我却找不到我做错了什么:( 我也发现很多问题在这个问题上,其中最常见的答案是使用JoinTable,但这不是我正在寻找的解决方案。
我尝试使用它,就像使用@JoinColumn(name =“ID”,referencedColumnName =“NAME”),但没有好处..
我使用的Java6,JPA2,休眠3.5.4和MySQL
有什么建议? 由于提前, 巴巴
@Entity
@Table(name = "T1")
public class Foo {
private long id;
private String name;
protected Collection<String> collection;
@Id
@GeneratedValue
@Column(name = "ID")
public long getId() {
return id;
}
@Basic
@Column(name = "NAME", nullable = false, unique = true)
public String getName() {
return name;
}
@Column(name = "COLLECTION")
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "ID")
public Collection<String> getCollection() {
return collection;
}
/*
* setters...
*/
}
的可能重复[如何坚持JPA类型列表的财产(http://stackoverflow.com/questions/287201/how-to-persist-a-property-of-type-liststringin -jpa) –
ruakh
2012-03-04 20:17:40
它看起来不像是我的重复 - 或者我只是不知道它... – 2012-03-04 20:26:42
根据那里的答案,将@ @ OneToMany改为@ @ CollectionOfElements应该可以解决这个问题。情况并非如此吗? – ruakh 2012-03-04 20:28:54