複合主キーの列の順序に問題があります。JPA/Hibernateを使用して複合主キーの列順序を設定する方法
@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;
}
}
私は具体的な@TableクラスHibernateでのAbstractMessageのサブクラスを作成するとエラーなしでデータベースとテーブルを作成し、私は次を含むテーブルを持っています。問題は、休止状態が、私が望むものの逆順で列を持つ複合主キーを生成していることです。
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;
私は、各LOCのために10 LOCの最大のが、多くの大紀元を持っていることを知っているので、私は、主キーが
PRIMARY KEY (`loc`,`epochtime`)
になりたいです。
任意の助けをいただければ幸い=)
今、私たちはこれをやっています。私は、Hibernateがデフォルトを変更するためのいくつかの機能を持つことを望んでいました。応答する時間をとっていただきありがとうございます。 – Garrett