我在我的複合主鍵中列的排序有問題。我有一個包含以下內容的表:如何使用JPA /休眠設置複合主鍵的列順序
@Embeddable
public class MessageInfo implements Serializable {
private byte loc;
private long epochtime;
@Column(name = "loc")
public byte getLoc() {
return loc;
}
@Column(name = "epochtime")
public long getEpochtime() {
return epochtime;
}
}
正是在這樣的映射中使用:
@MappedSuperclass
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class AbstractMessage implements Message {
private MessageInfo info;
private int blah;
@EmbeddedId
public MessageInfo getInfo() {
return info;
}
}
當我繼承的AbstractMessage一個具體@Table類休眠創建數據庫和表沒有任何錯誤。問題是,hibernate正在生成與我想要的相反順序的列的複合主鍵。
CREATE TABLE `mydb`.`concrete_table` (
`epochtime` bigint(20) NOT NULL,
`loc` tinyint(4) NOT NULL,
`blah` smallint(6) DEFAULT NULL,
`foo` smallint(6) DEFAULT NULL,
PRIMARY KEY (`epochtime`,`loc`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我想主鍵是
PRIMARY KEY (`loc`,`epochtime`)
因爲我知道,我將有一個最大的10分LOC的,但每個祿許多大紀元時報。
任何幫助,將不勝感激=)
是的,這就是我們現在要做的。我希望Hibernate可能有一些設施來改變默認設置。感謝您花時間回覆。 – Garrett