Hibernate ID列始终位于生成的SQL中

时间:2011-08-22 21:25:40

标签: hibernate

我的模型看起来像这样:

@MappedSuperclass
@AccessType("field")
public abstract class BaseEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "generator")
    @Column(name = "ID")
    private Long id;
}

@Entity
@Table(name = "MODEL")
@AccessType("field")
public class Model extends BaseEntity {
    @Column(name="ABC")
    private String abc;
}

无论我尝试什么,我似乎都无法在生成的INSERT或UPDATE sql查询中移动ID列的位置。 ID总是最后一列:

insert into MODEL (ABC, ID) values (?, ?)

有没有办法强迫它呢?

1 个答案:

答案 0 :(得分:0)

这是一个已知的Hibernate限制;有关详细信息,请参阅this thread

由于Hibernate将按字母顺序排序生成的SQL字段,为什么不更改CLOB字段的名称以确保它是最后的,例如通过预先挂起“zzz”使其变为zzzAbc