gpt4 book ai didi

java - 如何使用 Hibernate 注释在连接表上创建索引?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:47:30 26 4
gpt4 key购买 nike

我使用 Hibernate 注释有如下关系,这是我尝试过的:

public class Job{

...

@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "jobs_resource_locations")
@ForeignKey(name = "job_inputs_fk")
@Index(name="job_inputs_fk")
private List<FileSystemLocation> inputs;

这种事情在 ManyToOne 上工作得很好,就像这样:

@ManyToOne
@JoinColumn(name = "service_call_id", referencedColumnName = "id")
@ForeignKey(name = "job_service_call_fk")
@Index(name = "job_service_call_fk")
private ServiceCall serviceCall;

我想确保外键在 PostgreSQL 上得到索引,并且模式在 MySQL 上看起来相似,因此 @ForeignKey 和 @Index 具有相同的名称(MySQL 总是创建与 FK 具有相同名称的索引)。

我无法在反面创建索引,因为 FileSystemLocation 不知道这种关系。因此就有了 JoinTable。

前一个示例失败,因为 Hibernate 在 Job 中找不到要索引的列:

org.hibernate.MappingException: Unable to find logical column name from physical name null in table jobs

有谁知道如何使用 Hibernate 在 JoinTable 外键上创建索引?

最佳答案

这不完全是您希望收到的答案,但这是预期的行为。换句话说:这是不支持的。有关详细信息,请参阅以下 JIRA:

https://hibernate.atlassian.net/browse/HHH-4263

关于java - 如何使用 Hibernate 注释在连接表上创建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4400169/

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