【问题标题】:JPA column order in Play! framework [duplicate]Play 中的 JPA 列顺序!框架[重复]
【发布时间】:2011-09-10 13:45:08
【问题描述】:

可能重复:
Wrong ordering in generated table in jpa

我正在使用 Play!框架,我的模型中有这个:

@Entity(name="Dialer")
public class Dialer extends Model {
    @Column(name="offer")
    public String offer;
    @Column(name="domain")
    public String domain;
    @Column(name="created_date", insertable=false, updatable=false) 
    @Generated(value=GenerationTime.ALWAYS) 
    @Temporal(TemporalType.TIMESTAMP)
    public DateTime createdDate;
    ......

我希望这会完全按照它的布局反映在数据库中,但我得到了这个:

id, created_date, domain, offer

我该如何解决这个问题?

【问题讨论】:

  • 为什么重要?列顺序不应不重要。
  • 如果您使用映射文件而不是注释,您是否尝试过订单是否保留?注释可以按任何顺序处理——不仅是它们的写入顺序。您可能还想阅读 JPA 实现的文档,因为它可能具有允许明确指定列顺序的扩展
  • 如果这些 cmets 让您不高兴,我很抱歉。我的意图是 1) 确定动机,因为并非所有人都理解列顺序中缺乏意义 2) 将其与其他 Stack Overflow 问题联系起来,以便为具有不同议程的不同用户提供更好的服务 3) 理解为什么列秩序就是它的本质以及可以做些什么。我知道第 3 部分是唯一可能对您有所帮助的部分,您最好能得到一个简短的答案。
  • 相信我,我没有沮丧,有点沮丧——但我已经编程了足够长的时间,知道它与领土有关。

标签: jpa playframework


【解决方案1】:

已回答。 Hibernate 按字母顺序对列进行排序。

Wrong ordering in generated table in jpa

【讨论】:

    【解决方案2】:

    JPA 没有定义控制表的模式生成列顺序的方法;它依赖于实现。 JDO 确实定义了一种机制。

    【讨论】:

    • JDO 的机制允许用户使用 @Column(position={x}) 指定一个字段,其中 {x} 是一个整数,因此您可以对所有列进行排序。显然,Hibernate 无论如何都不支持 JDO。您的 JPA 实现是否提供了执行此操作的方法取决于您使用的是什么以及阅读他们的文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多