J'ai un fichier de référentiel partagé le code source pour la même classe et une classe de contrôleur à travers laquelle je fais un appel à cette fonction @Query pour une instruction de mise à jour. Je souhaite mettre à jour une carte de colonne dans ma base de données Oracle pour laquelle j'ai écrit JPA Update @Quisery et défini la fonction dans l'un des fichiers de référentiel. Par conséquent, la création d'un appel de l'une de mes catégories de contrôleur ne peut pas exécuter la requête.
package com.sid.demo.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="user_registration")
public class hindalco_model
{
@GeneratedValue(strategy=GenerationType.AUTO)
@Id
@Column(name="user_id")
private int user_id;
@Column(name="user_name")
private String user_name;
@Column(name="email")
private String email;
@Column(name="password")
private String password;
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "hindalco_model [user_id=" + user_id + ", user_name=" + user_name + ", email=" + email + ", password="
+ password +"]";
}
}
3 Réponses :
@Transactional @Modifying(clearAutomatically = true) @Query(value="update USER_REGISTRATION set password = ?1 WHERE user_name = ?2 and email = ?3",nativeQuery=true) void findbyuser_update(String password,String user_name,String email); The @Modifying annotation is used to enhance the @Query annotation to execute not only SELECT queries but also INSERT, UPDATE, DELETE, and even DDL queries.
Hibernate: Mettre à jour la base de données_Name.User_Table Set Mot de passe =? Où user_name =? 2019-03-13 11: 54: 55.183 Avertissement 26760 --- [NIO-8080-EXEC-6] OHENGINE.JDBC.SPI.SQLETHELLER: Erreur SQL: 1002, SQLSTATE: 24000 2019-03-13 11:54: 55.183 Erreur 26760 --- [NIO-8080-EXEC-6] OHENGINE.JDBC.SPI.SQExceptionHelper: ORA-01002: Fetch hors de séquence
@Samuelbarkley Bonjour, s'il vous plaît partagez votre requête mise à jour que vous avez écrite
@TransAderal @MODIFIFIER (CLEARAUTOMATIF = TRUE) @QUERY (VALEUR = "Mettre à jour MINES.HMG_ZEPHYR_USERS SET PASSWORT =: Mot de passe Où User_Name =: nom_sutilisateur", natifquery = true) Liste
@Samuelbarkley Update La requête ne reviendra pas de liste
Pour modifier les requêtes (mise à jour, supprimer, insérer) Vous devez utiliser l'annotation En outre, votre requête ne renvoie rien afin que votre méthode devait probablement retourner et bien que cela ne soit pas nécessaire, il est toujours une bonne idée de nommer une méthode en fonction de ce qu'elle fait en réalité. p> Tout cela se traduit par: P > @Modification code>.
vide code>. p>
@Modifying
@Query(value="update USER_REGISTRATION set password = :password WHERE user_name = :user_name and email = :email",nativeQuery=true)
void updatePassword(@Param("password") String password,String user_name,String email);
Hibernate: Mettez à jour le mot de passe défini Ss.SID =? Où user_name =? 2019-03-13 11: 54: 55.183 Avertissement 26760 --- [NIO-8080-EXEC-6] OHENGINE.JDBC.SPI.SQLETHELLER: Erreur SQL: 1002, SQLSTATE: 24000 2019-03-13 11:54: 55.183 Erreur 26760 --- [NIO-8080-EXEC-6] OHENGINE.JDBC.SPI.SQExceptionHelper: ORA-01002: Fetch hors de séquence
Normalement, le flux est comme contrôleur code> ->
service code> ->
dao code>. Vous pouvez donc créer un service qui appellera le dao / référentiel respectif. En outre, veuillez vérifier Ce lien . P>