У меня проблемы с упорядочением столбцов в моем составном первичном ключе. У меня есть таблица, которая содержит следующее:
@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 создает базу данных и таблицу без ошибок. Проблема в том, что 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 лок, но много эпох для каждого лок.
Любая помощь будет оценена =)