Je veux joindre deux tables sur la colonne "fournisseur", Dans le type de fournisseur de table de facture est entier, dans la table fournisseur, le fournisseur est de type varchar (10).JPA définir relation sur un champ qui nécessite la conversion de type
Est-il possible de faire une conversion de type et d'avoir une relation?
@Entity
public class Vendor
{
private String id;
@Id(Column="vendor")
public String getId(){ ... }
}
@Entity
public class Invoice
{
private Vendor vendor;
@One-to-one
public Vendor getVendor() { ... }
}
Oui, je suppose que cela fonctionnera, mais je ne suis pas heureux d'avoir une table supplémentaire. La raison pour laquelle j'ai ajouté une prime est en fait parce que je voudrais faire des agrégations comme AVG() sur un champ de texte, et j'ai supposé que la réponse à cette question résoudrait aussi mon problème. Je pense que @Transient fonctionnera, mais je dois encore le tester. Merci, je vais vous donner la prime si je ne reçois pas de meilleures réponses. – AmanicA
@AmanicA Cette solution fonctionnerait pour mapper un type donné dans le code à une colonne typée différemment dans la base de données (comme un champ enum dans une colonne de texte) mais je ne pense pas que vous puissiez définir une colonne jointe de cette façon. Je ne suis pas sûr si les convertisseurs d'EclipseLink ou d'Hibernate fonctionnent aussi avec des relations, j'expérimenterai ceci cependant. – mcyalcin