代码之家  ›  专栏  ›  技术社区  ›  David Tinker

如何使用Spring Roo和JPA提供自己的@id字段

  •  6
  • David Tinker  · 技术社区  · 15 年前

    我试图让Spring Roo使用我自己的@Id字段,而不是生成一个。

    @Entity
    ...
    @RooEntity
    @Table(name = "usr")
    public class User {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "usr_id")
        private Integer id;
        ...
        public Integer getId() { return id; }
        public void setId(Integer id) { this.id = id }
        ...
    }
    

    Roo仍然在User_Roo_Entity.aj中创建以下内容:

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "_id")
    private Long User._id;
    

    我怎样才能让它确认我的@Id字段?我想指定我自己的发电机等。

    1 回复  |  直到 15 年前
        1
  •  2
  •   David Tinker    15 年前

    看起来这是SpringRoo1.1.0.RELEASE中的一个bug。我把@Id改成了@javax.persistence.Id,它起作用了。显式导入javax.persistence.Id也可以工作(而不仅仅是javax.persistence.*)。我在IntelliJ中优化了导入,所以第一个选项可能是最好的解决方法。