gpt4 book ai didi

hibernate - jpa hibernate @ElementCollection

转载 作者:行者123 更新时间:2023-11-29 13:37:43 29 4
gpt4 key购买 nike

我有个问题有点困扰我。

当我在我的实体 hibernate (3.5) 中使用 @ElementCollection 时,会为我生成一个没有任何约束的表。

重要修改

我的实体是另一个类的子类。这可能就是 hibernate 不生成 pk 和 fk 的原因。

编辑结束

public MyEntity extends BaseEntity
@ElementCollection(fetch=FetchType.EAGER)
private Set<String> test;

结束于(postgres 9):

CREATE TABLE myentity_test
(
entityid bigint NOT NULL,
test character varying(255)
)

hibernate 没有设置任何约束,如外键或唯一索引,这是我的错误吗?我可以手动设置它,但我更愿意正确注释完全 hibernate (尽可能)创建我的数据库的实体。

最好的问候,米

PS:我一点都不差。混淆了两件在我脑海中徘徊的事情。我的意思是@ElementCollection。

PS:@Column 帮助提供了唯一索引。编辑:将名称更正为我的示例。

CREATE TABLE myentity_test
(
entityid bigint NOT NULL,
test character varying(255),
CONSTRAINT itemequipable_test_test_key UNIQUE (test)
)

我希望是这样的(伪代码):

CREATE TABLE myentity_test
(
entityid bigint NOT NULL PRIMARY KEY,
test character varying(255) PRIMARY KEY,
CONSTRAINT fk_entityid references (myentity) on entityid
)

最佳答案

@Column 和@JoinColum/@OneToMany 注释是处理外键和唯一约束的正确方法,即使使用@ElementCollection。

在您的特定示例中,不会有外键关系,因为 String(您的 Set 的类型)未映射到另一个实体。

关于hibernate - jpa hibernate @ElementCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4960274/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com