我有表item_image:
create table item_image
(
item_id bigint not null
constraint item_image_pk
primary key
constraint item_image_item_fk
references item,
location varchar(1000) not null,
path varchar(1000) not null,
file_name varchar(200) not null
);
并将其Map为实体:
@Entity
@Table(name = "item_image", schema = "public")
public class ItemImageEntity implements Serializable {
@Id
@OneToOne
@JoinColumn(name = "item_id")
private ItemEntity item;
private String location;
private String path;
private String fileName;
// getters and setters
}
我的项目实体具有:
@OneToOne(mappedBy = "item")
private ItemImageEntity profileImage;
在该表中,postgress表不包含对该item_image的引用,反之亦然。
当我尝试运行应用程序时,我得到:
@启用在JpaRepositoriesRegistrator上声明的JpaRepositories。启用JpaRepositoriesConfiguration:调用init方法失败;嵌套的异常是java.lang.IllegalArgumentException:此类[ItemImageEntity]未定义标识类
为什么我需要定义IdClass和How?因为我只有一个主键。
感谢您的帮助!
1条答案
按热度按时间wwwo4jvm1#
1.问题是你想添加实体的主键而没有真实的的主键,Hibernate无法识别itemEntity。(你有item_id字段吗?)