Sospensione Stringa Chiave Primaria con Annotazioni

Sto cercando di creare un Privilegio di classe con Annotazioni la cui Chiave Primaria è una Stringa. Io non assegnare manualmente durante l’inserimento. Quindi non è necessario alcun sospensione per generare un valore. Sto cercando di fare qualcosa di simile:

@Id
@GeneratedValue(generator = "assigned")
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;

Ma getta eccezione:

Caused by: org.hibernate.AnnotationException: Unknown Id.generator: assigned

Come posso configurare un String chiave primaria con annotazioni?

OriginaleL’autore sedran | 2014-04-22

3 risposte

  1. 22

    Dal roleName non è auto-generato, si dovrebbe semplicemente non annotare con @GeneratedValue:

    @Id
    @Column(name = "ROLE_NAME", nullable = false)
    private String roleName;
    Grazie, che ha lavorato per me e posso vedere che il campo è il PrimaryKey della tabella.

    OriginaleL’autore JB Nizet

  2. 4

    Basta usare il @Id annotazione che permette di definire la proprietà è l’identificatore dell’entità. Non è necessario utilizzare il @GeneratedValue annotazione, perché non credo che si desidera sospensione per generare questa proprietà è per voi.

    Anche nella configurazione XML approccio basato su un tag opzionali e possono essere ignorati.

    Grazie per la tua risposta, ho pensato @GeneratedValue è richiesto, ma in realtà non lo è 🙂

    OriginaleL’autore Pratik Shelar

  3. 3
    @Id
    @Column(name = "USER_ID",unique=true,columnDefinition="VARCHAR(64)")
    private String userId;

    Questo ha funzionato per me, come rappresentante del columnDefinition tipo con la colonna annotazione durante il salvataggio o di aggiornamento.

    OriginaleL’autore Gopinathan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *