JPA Hibernate Index non crée dans Mysql
J'utilile hibernate pour ma persistence JPA.
Mysql5.1 pour la base de donnée.
J'ai un object User avec un identifier et un firstName.
Dans cet exemple, ces 2 éléments ne sont pas uniques séparément.
Je voudrais avoir un index sur ces 2 colones.
J'ai vu une annotion dans hibernate (non standart) qui perment de créer cet index...
@org.hibernate.annotations.Table(appliesTo="USER", indexes = { @Index(name="element_idx", columnNames = { "firstName", "identifier" } ) } )
Mais aucun index n'est crée dans Mysql...
Une Idée ???
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
package com.alu.ejb.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Index;
@Entity
@Table(name = "USER")
@org.hibernate.annotations.Table(appliesTo="USER", indexes = { @Index(name="element_idx", columnNames = { "firstName", "identifier" } ) } )
public class User
implements Serializable
{
private Integer _id;
private String _email;
private String _firstName;
private String _identifier;
public User()
{
}
public String getEmail()
{
return _email;
}
@Column(unique=false, nullable = false)
public String getFirstName()
{
return _firstName;
}
@Id
@Column(nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getId()
{
return _id;
}
@Column(unique = false, nullable = false)
public String getIdentifier()
{
return _identifier;
}
public void setEmail(String email) {
this._email = email;
}
public void setFirstName(String firstName) {
this._firstName = firstName;
}
public void setIdentifier(String identifier) {
this._identifier = identifier;
}
public void setId(Integer id) {
this._id = id;
}
} |
@ID est pour la définition de la clef primaire !!!
@ID est une annotation pour la clef primaire.
L'annotation @Index (mise dans l'annotation @table ou non) est pour la creation d'indexes !!
Donc je ne pense pas que @ID est @Index soient liés...
Une autre reponse ??