Joh*_*gel 5 java postgresql hibernate jpa spring-data-jpa
我使用 Spring Data JPA 和 PostgreSQL 10。
鉴于课程
@Entity
@Table(name = "test_table")
@IdClass(TestTableId.class)
public class TestTable {
@Id
private int b;
@Id
private int a;
private int c;
// Getters, setters, hashCode() and equals()
}
Run Code Online (Sandbox Code Playgroud)
和
public class TestTableId implements Serializable {
private int b;
private int a;
// Constructors, getters, setters, hashCode() and equals()
}
Run Code Online (Sandbox Code Playgroud)
在数据库中,表是由 hibernate 通过创建的
CREATE TABLE test_table
(
a integer NOT NULL,
b integer NOT NULL,
c integer NOT NULL,
CONSTRAINT test_table_pkey PRIMARY KEY (a, b)
)
Run Code Online (Sandbox Code Playgroud)
我想要PRIMARY KEY (a, b)而不是PRIMARY KEY (b, a)出于性能原因。如何在不重命名列的情况下实现此目的?
尝试使用 @Embeddable 组合键
@Embeddable
public class key implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "a")
private String a;
@Column(name = "b")
private String b;
}
public class App implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private Key id;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2031 次 |
| 最近记录: |