Hibernate annotations avec colonne commune étrangère et de la clé primaire

Je vais avoir quelques problèmes de modélisation d'une clé étrangère de la façon dont je l'aime en veille prolongée 4.1.9

J'ai pratiquement le code suivant:

@Entity
@XmlRootElement
@Table(name="User")
public class UserVO
{
    private String email;

    @Id
    @Column(name="email", unique=true, nullable=false)
    @XmlElement
    public String getEmail()
    {
        return this.email;
    }
}

et ce:

@Entity
@XmlRootElement
@Table(name="Authentification")
public class AuthentificationVO
{
    private String email;
    private UserVO user;

    @Id 
    @Column(name="email", unique=true, nullable=false)
    @XmlElement
    public String getEmail()
    {
        return this.email;
    }

    @OneToOne(cascade = CascadeType.ALL)
    @ForeignKey(name="user_fk")
    public UserVO getUser()
    {
        return this.user;
    }
}

Le point de tout cela, c'est d'avoir une colonne nommée e-mail dans les deux tables, ce qui devrait aussi servir comme clé primaire pour l'Utilisateur et l'Authentification des tables. Pour quelque raison, quand je l'exécute, Hibernate insiste sur l'ajout d'une colonne à l'Authentification table appelée user_email, mais je veux qu'il à utiliser la déjà existant colonne nommée e-mail.

J'ai essayé de regarder autour pour une solution à cela et j'ai essayé d'utiliser mappedBy annotation pour obtenir la droite, le long de avec JoinColumn, mais rien ne semble faire l'affaire.

OriginalL'auteur Chris | 2013-03-08