Bonjour,
J'ai deux objets, un Astre et une Coordonnees. Un astre à toujours une coordonnées mais une coordonnées n'a aucun sens seul (c'est toujours lié à un astre).
Pour matérialiser cela, jusqu’à présent dans l'entité Astre j'avais un attribut de type object qui contenait les coordonnées sérialisée.
Ceci dit, je souhaiterai à présent faire une recherche dans la base de données sur ses coordonnées, aussi le tant qu'elles sont sous forme d'object sérialisé c'est beaucoup moins pratique.
Il me faudrait donc une façon de faire ne sérialisant pas les coordonnées mais enregistrant chaque info dans un champ de façon à pouvoir faire une recherche sur une partie (ou toutes) les composantes d'une coordonnées.
Une méthode valable serai de définir une relation oneToOne entre un Astre et une Coordonnees... Mais comme je viens de le dire, une coordonnées n'a aucun sens seul, ce que je souhaiterai c'est avoir les différents composant d'une coordoonées directement dans la table astre.
Sauf que je ne sais pas comment faire :p
J'ai regardé du coté des types custom autant la partie @ORM\Column(type="Coordonnees") serait juste géniale si je pouvait dans cette variable directement mettre un objet de type Coordonnees... mais quand je regarde l'exemple fourni, j'ai pas l'impression que sa me permet de faire un mapping comme je le souhaiterai.
C'est la que je me suis rapellé que j'avais déjà réfléchit à la question il y a très longtemps, et je suis tombé sur un tuto parlant des template avec doctrine1. Sauf que j'ai l'impression que ceux-ci ne sont plus présent dans doctrine2... a nouveau dommage
A force de continuer de creuser je suis tombé sur les Embeddables, encore une fois je me suis dit bingo... mais non... si apparement en théorie ils sont disponible, lorsque je tente d'utiliser l'annotation j'ai droit à une exception me disant que sa n'existe pas, j'ai été voir dans le dépôt github, c'est disponible dans la branche master actuelle... mais si on regarde la dernière stable (2.4) bah là sa n'existe malheureusement pas encore.
Bref... j'ai fait le tour de la question sans succès. Quelqu'un aurai-t'il une idée ?
Merci d'avance pour votre aide.
Cordialement, orion.
Partager