表名称:传输
列:标识符、键、传输号、名、姓
Transfer的表复合主键是:标识符、键、Transfer_编号
传输的表索引INDEX1定义:标识符ASC、键ASC、传输号ASC
转移波乔
@Entity
@Table(name = "TRANSFER", indexes = { @Index(name = "INDEX1", columnList = "identifier,key,transferNbr") })
@Getter
@Setter
@DynamicUpdate
public class Transfer implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private TransferPk id;
@Column(name = "FIRST_NAME")
private String firstName;
@Column(name = "LAST_NAME")
private String lastName;
波乔
@EqualsAndHashCode
@Getter
@Setter
@Embeddable
public class TransferPk implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "IDENTIFIER")
private String identifier;
@Column(name = "KEY")
private int key;
@Column(name = "TRANSFER_NUMBER")
private String transferNbr;
检索传输的代码
TransferPk id = new TransferPk();
id.setIdentifier("123");
id.setKey(456);
id.setTransferNbr("789");
// This JPA query also uses the reverse Transfer of index
Optional<Transfer> Transfer = TransferRepo.findById(id);
我能够从数据库中获取数据,没有任何问题,HQL是
select <all fileds> from TRANSFER transfer0_ where transfer0_.TRANSFER_NUMBER=? and transfer0_.KEY=? and transfer0_.IDENTIFIER=?
虽然我们使用了索引注释,但JPA仍然没有使用传输表(INDEX1)中定义的索引,因此检索需要更多时间。
如何强制JPA使用索引顺序。非常感谢您的帮助。非常感谢。
首先,你创建索引的方式是错误的。列列表将始终使用表列名而不是字段名。
在你的情况下,应该是:---
@Table(name = "TRANSFER", indexes = { @Index(name = "INDEX1", columnList = "IDENTIFIER,KEY,TRANSFER_NUMBER ASC") })
“DESC/ASC”用于索引顺序。
希望它能解决你的问题。
我不知道你所说的“索引顺序”是什么意思,但你在@index
注释中使用了JPA属性名称,这是错误的。使用列名称,如@Index(name=“INDEX1”,columnList=“identifier,key,transfer_number”)
问题内容: 我在复合主键中的列排序遇到麻烦。我有一个包含以下内容的表: 在此映射中使用它: 当我使用具体的@Table类将AbstractMessage子类化时,hibernate会创建数据库和表而不会出错。问题在于,hibernate会以我想要的相反顺序生成带有列的复合主键。 我希望主键是 因为我知道我最多将有10个位置,但是每个位置有很多时间。 任何帮助将不胜感激=) 问题答案: 我真的不认为
我有以下表格,如何将它们映射到JPA实体: 事件表与会议表具有一对多的关系。我如何在JPA中映射这种双向关系?
问题内容: 我的JPA模型中有以下类(省略了getters,setters和无关字段): 我需要定义一个类,使得当从所述类生成DDL时,相应的表的主键被由密钥和。我尝试了以下方法: 但这会为表生成以下内容: 请注意,和都是可为空的,当我尝试将DDL加载到SQL Server时会导致以下错误 无法在表“ PRICE”中的可为空的列上定义PRIMARY KEY约束 我不明白为什么这些可以为空,因为在域
我为这个特殊的问题找了很多,但我没有找到任何具体的解决办法。我在一个表中有一个复合主键,这个复合主键的一个字段是另一个表的复合主键的一部分。您可以说这个特定的字段是第二个表中的外键,但是在表定义中没有定义任何独占外键约束。对于第一个表中的每个rec,第二个表中可能有多条记录。我试图使用SPringBoot-JPA-Hibernate实现这一点,但无法实现。有人能帮我吗。以下是德泰:- 我有一个US
问题内容: 我有两个父表:和。 处理表: 访问表: 现在,我尝试创建一个子表: 一切正常,直到第3行。从第三行开始,即显示一条消息:。 问题答案: CONSTRAINT fk_column FOREIGN KEY (column1, column2, … column_n) REFERENCES parent_table (column1, column2, … column_n) 在你的情况下
问题内容: 我有以下表格如何将它们映射到JPA实体: 事件表与会议表具有一对多关系。如何在JPA中映射这种双向关系? 问题答案: 在JPA 2.1规范的第2.4.1节中讨论。