Comment faire pour les insérer dans la db au printemps de données?
Je veux faire une requête qui insère des données dans ma base de données. Le tableau a 4 colonnes: ID_DOCUMENT (PK), ID_TASK, la DESCRIPTION, le CHEMIN du fichier
Entité
...
@Column(name = "ID_TASK")
private Long idTask;
@Column(name = "DESCRIPTION")
private String description;
@Column(name = "FILEPATH")
private String filepath;
...
Référentiel
@Modifying
@Query("insert into TaskDocumentEntity c (c.idTask, c.description, c.filepath) values (:id,:description,:filepath)")
public void insertDocumentByTaskId(@Param("id") Long id,@Param("description") String description,@Param("filepath") String filepath);
Contrôleur
@RequestMapping(value = "/services/tasks/addDocument", method = RequestMethod.POST)
@ResponseBody
public void set(@RequestParam("idTask") Long idTask,@RequestParam("description") String description,@RequestParam("filepath") String filepath){
//TaskDocumentEntity document = new TaskDocumentEntity();
taskDocumentRepository.insertDocumentByTaskId(idTask,descriere,filepath);
}
Quand je lance mon test, j'obtiens cette erreur:
Causés par: org.mise en veille prolongée.hql.ast.QuerySyntaxException: attend à OUVRIR, trouvé de " c " à proximité de la ligne 1, colonne 32 [insérer dans TaskDocumentEntity c (c.idTask, c.descriere, c.filepath) values (:id,:descriere,:filepath)]
J'ai essayé de supprimer l'alias c, et ne fonctionne toujours pas.
Retirez votre
Merci de poster le code de votre référentiel de la classe n'est pas seulement la déclaration de la méthode et aussi poster votre configuration spring/classe xml.
insertDocumentByTaskId
. Dans votre contrôleur de créer une instance de TaskDocumentEntity
définir les propriétés et appeler la save
méthode. Le point de l'ensemble de la JPA, c'est que vous n'avez pas à écrire vos requêtes...plusMerci de poster le code de votre référentiel de la classe n'est pas seulement la déclaration de la méthode et aussi poster votre configuration spring/classe xml.
OriginalL'auteur que1326 | 2015-10-07
Vous devez vous connecter pour publier un commentaire.
Printemps de données fournit de la boîte
save
méthode utilisée pour l'insertion de la base de données - pas besoin d'utiliser@Query
. Prendre un regard sur les concepts de base de springData (http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.core-concepts)ainsi, dans votre contrôleur viens de créer un objet
TaskDocumentEntity
et de le passer à référentielIl travaille maintenant, je n'ai
t inject the service in the test class, and didn
t passer tous les paramètres de la demande, de toute façon j'ai réécrit le contrôleur, merci beaucoup les gars !!!OriginalL'auteur pezetem
Il y a un moyen de le faire, mais cela dépend de la db que vous utilisez. Ci-dessous travaillé pour moi dans Oracle (à l'aide de la Double table):
Donc dans votre cas, il serait (si Oracle):
Je ne suis pas sûr de la db que vous utilisez, voici un lien qui montre au fond de la db soutien sélectionnez stmts sans une clause from : http://modern-sql.com/use-case/select-without-from
OriginalL'auteur A.P