2010-11-19 30 views
6

J'essaie d'amener Spring Roo à utiliser mon propre champ @Id au lieu d'en générer un.Comment puis-je fournir mon propre champ @id en utilisant Spring Roo et JPA?

@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 crée encore ce qui suit dans User_Roo_Entity.aj:

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

Comment puis-je obtenir de reconnaître mon champ @Id? Je veux spécifier mon propre générateur, etc.

Répondre

2

Cela ressemble à un bug dans Spring Roo 1.1.0.RELEASE. J'ai changé @Id à @ javax.persistence.Id et cela fonctionne. L'importation explicite de javax.persistence.Id fonctionne également (au lieu de simplement javax.persistence. *). J'ai optimisé les importations sur IntelliJ donc la première option est probablement la meilleure solution de contournement.

+0

J'ai enregistré un bug Roo: https://jira.springframework.org/browse/ROO-1755 –

+0

En supposant STS, assurez-vous toujours que le shell Roo est en cours d'exécution si vous modifiez des entités, afin que les changements puissent prendre effet. – opyate