我在我的复合主键中列的排序有问题。我有一个包含以下内容的表:如何使用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