gpt4 book ai didi

java - Hibernate 在从注解创建表时不会创建索引

转载 作者:行者123 更新时间:2023-11-30 09:54:26 32 4
gpt4 key购买 nike

我将 hibernate 与 hbm2ddl.auto=update 结合使用,这样它会自动为我生成我的 oracle 表(我无意学习 oracle 的 sql)。

到目前为止,一切都很好,直到现在我正试图让它创建一个索引。据我所知,我的注释是正确的:

package data;
import javax.persistence.*;
import org.hibernate.annotations.Index;

@Entity
@Table(name="log_entries")
@org.hibernate.annotations.Table(appliesTo="log_entries",
indexes = { @Index(name="idx", columnNames = {"job", "version", "schedule", "dttmRun", "pid" } ) } )
public class LogEntry {
@Id @GeneratedValue
Long id;
String job;
String version;
String schedule;
String dttmRun;
int pid;
String command;
int duration;

// getters and setters...
}

当我删除表并重新启动我的应用程序时,它会创建表而不是索引。有什么想法吗?

最佳答案

我在 Derby 上测试了您的代码,这是我在运行 SchemaUpdate 时得到的结果 SchemaExport :

drop table log_entries

create table log_entries (
id bigint not null,
command varchar(255),
dttmRun varchar(255),
duration integer not null,
job varchar(255),
pid integer not null,
schedule varchar(255),
version varchar(255),
primary key (id)
)

create index idx on log_entries (job, version, schedule, dttmRun, pid)

按预期工作。不过现在不能在 Oracle 上试用。

使用 Hibernate EM 3.4.0.GA、Hibernate Annotations 3.4.0.GA、Hibernate Core 3.3.0.SP1 进行测试。

更新:我意识到我跑了 SchemaExport , 不是 SchemaUpdate并确认在运行 SchemaUpdate 时未创建索引使用上面提到的库版本。所以,虽然 ANN-108 已被拒绝作为 的欺骗 HHH-1012 ,而<罢工> HHH-1012 标记为已修复,而 HB-1458打开(!?),我的快速测试没有按预期工作。稍后我会更深入地了解,但我现在很困惑(尤其是 HHH-1012 )。

关于java - Hibernate 在从注解创建表时不会创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3287351/

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