2010-11-19 34 views
6

我想讓Spring Roo使用我自己的@Id字段而不是生成一個。如何使用Spring Roo和JPA提供我自己的@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 } 
    ... 
} 

小豆仍然創造了User_Roo_Entity.aj如下:

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

我怎樣才能得到它承認我@Id場?我想指定我自己的生成器等。

回答

2

看起來像這是Spring Roo 1.1.0.RELEASE中的一個錯誤。我將@Id更改爲@ javax.persistence.Id並且它可以工作。顯式導入javax.persistence.Id也可以工作(而不僅僅是javax.persistence。*)。我在IntelliJ中優化了導入,所以第一個選項可能是最好的解決方法。

+0

我記錄了Roo錯誤:https://jira.springframework.org/browse/ROO-1755 – 2010-11-20 13:32:14

+0

假設STS,如果您修改實體,請務必確保Roo shell正在運行,以便更改生效。 – opyate 2012-02-01 15:21:38

相關問題