Je voudrais demander comment implémenter une telle chose comme mettre à jour une entité avec une relation @ManyToOne. J'ai deux tables documents et le type de Doctype comme ça
doucments
@JoinColumn(name = "doctype", referencedColumnName = "document_id") @ManyToOne private DocType doctype;
DocType
@OneToMany(mappedBy = "doctype") private Collection<Documents> DocCollection;
Mise en œuvre de la mise à jour de JPA MantyToOne
Lorsque l'utilisateur doit mettre à jour doctype il tapez la valeur dans wich combobox contiennent tous les noms de DOCTYPE dans la chaîne .Ensuite Je trouve entité doctype, où nom de doctype comme valeur sélectionnée dans la zone de liste déroulante, puis j'ai défini cette entité de type doctype sur l'entité documents.
public void saveDoc() { entityManager.getTransaction().begin(); currentEntitydoc.setDocType(getDocTypeEntity(ComboBox.getSelectedValue())); entityManager.getTransaction().commit(); }
Où getDocTypeEntity() comme
public DocType getDocTypeEntity (String userInput) { query = manager.createQuery( "Select type from DocType type Where type.name=:arg1" ); query.setParameter("arg1" , userInput); List<DocType> list = query.getResultList(); if (list.size() < 1 ) { System.out.println ("can't find such DocType name); } return list.get(0); }
Semble qu'il est une tâche très souvent, comment mettre en œuvre do u telles choses? Y a-t-il un meilleur moyen de le faire en JPA?