无法确定表中java.util.Set的类型
我创建了两个类,它们之间有多对多关系,如下所示:无法确定表中java.util.Set的类型,java,hibernate,jpa,Java,Hibernate,Jpa,我创建了两个类,它们之间有多对多关系,如下所示: @Entity @Table(name = FoodEntity.TABLE_NAME) public class FoodEntity extends BaseEntity<Long> { public static final String TABLE_NAME = "T_FOOD"; @ManyToMany @JoinTable( name = "T_FOOD_FOODCATEGORY", joinColum
@Entity
@Table(name = FoodEntity.TABLE_NAME)
public class FoodEntity extends BaseEntity<Long> {
public static final String TABLE_NAME = "T_FOOD";
@ManyToMany
@JoinTable(
name = "T_FOOD_FOODCATEGORY",
joinColumns = { @JoinColumn(name = "FOOD_ID") },
inverseJoinColumns = { @JoinColumn(name = "FOOD_CATEGORY_ID") })
private Set<FoodCategoryEntity> categories;
public Set<FoodCategoryEntity> getCategories() {
return categories;
}
public void setCategories(Set<FoodCategoryEntity> categories) {
this.categories = categories;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "FOOD_ID", nullable = false)
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
}
我检查了注释包引用和所有ID列名,但它们都是正确的。
要点:我还使用HSQLDB数据库,它的存储位置是一个文件。您可以推断属性访问类型映射,因为
@Id
放置在getter上
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "FOOD_ID", nullable = false)
@Override
public Long getId() {
return id;
}
public Set<FoodCategoryEntity> getCategories() {
return categories;
}
但集合注释放置在字段级别
@ManyToMany
@JoinTable(
name = "T_FOOD_FOODCATEGORY",
joinColumns = { @JoinColumn(name = "FOOD_ID") },
inverseJoinColumns = { @JoinColumn(name = "FOOD_CATEGORY_ID") })
private Set<FoodCategoryEntity> categories;
@manytomy
@可接合(
name=“T_FOOD_FOODCATEGORY”,
joinColumns={@JoinColumn(name=“FOOD_ID”)},
inverseJoinColumns={@JoinColumn(name=“FOOD\u CATEGORY\u ID”)}
私有集合类别;
在getter上指定(未指定)有效配置时
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "FOOD_ID", nullable = false)
@Override
public Long getId() {
return id;
}
public Set<FoodCategoryEntity> getCategories() {
return categories;
}
公共集合getCategories(){
退货类别;
}
您不应该混合使用两种类型的配置。我发现了我的问题。
persistence.xml中的映射类不正确。当我将categories字段上的注释位置更改为method I get bellow异常时,可能存在重复异常:原因:org.hibernate.AnnotationException:使用一个或多个目标为未映射类的对象:ir.msr.projects.crawler.food.entity.FoodEntity.categories[ir.msr.projects.crawler.food.entity.FoodCategoryEntity]第二个未扫描。测试配置问题?