Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法确定表中java.util.Set的类型_Java_Hibernate_Jpa - Fatal编程技术网

无法确定表中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]第二个未扫描。测试配置问题?