[JAVA] Je suis resté coincé en utilisant un cas de serpent pour le nom de variable dans Spring Boot

Les articles suivants sont soumis aux conditions suivantes

environnement


Java:1.8
WebFramework:SpringBoot1.5.4
DB:MySQL

table


id int
name varchar
regist_date Date

L'erreur suivante s'est produite lorsque j'ai ajouté regist_date à la condition de tri lors de la récupération de données à partir de la base de données à l'aide de findAll dans Spring Boot.

Aucun registre de propriétés trouvé pour le type Nom de classe d'entité avec cause racine

La cause était que j'utilisais un cas de serpent pour les noms de variables dans la classe Entity. Selon DELIMITERS à la ligne 39, les lignes 259 à 265 sont divisées en «registre» et «date». Une erreur se produit lors de la spécification des conditions lors du tri.

java:org.springframework.data.mapping.PropertyPath.java


39.	private static final String DELIMITERS = "_\\.";
40.	private static final String ALL_UPPERCASE = "[A-Z0-9._$]+";
41.	private static final Pattern SPLITTER = Pattern.compile("(?:[%s]?([%s]*?[^%s]+))".replaceAll("%s", DELIMITERS));

(réduction)

253.	public static PropertyPath from(String source, TypeInformation<?> type) {
254.
255.		Assert.hasText(source, "Source must not be null or empty!");
256.		Assert.notNull(type, "TypeInformation must not be null or empty!");
257.
258.		List<String> iteratorSource = new ArrayList<String>();
259.		Matcher matcher = SPLITTER.matcher("_" + source);
260.
261.		while (matcher.find()) {
262.			iteratorSource.add(matcher.group(1));
263.		}
264.
265.		Iterator<String> parts = iteratorSource.iterator();

En guise de contre-mesure, j'ai changé ce que j'avais écrit dans l'affaire du serpent en une caisse de chameau. Je l'avais deviné quand j'ai vu l'erreur,

--Je veux faire correspondre le nom de la variable avec le nom de la colonne ――Je ne veux pas changer la politique même si la cause n'est pas claire

Je l'ai enquêté.

De plus, si le nom de la colonne est un cas de chameau, le nom de la variable correspondra? (Il est nécessaire de changer la NamingStrategy d'Hibernate dans Spring Boot en EJB3NamingStrategy, mais [Non vérifié]) Il peut y avoir une opinion, mais le nom de la colonne doit être un cas de serpent, alors laissez-le tel quel

référence [[Correction supplémentaire] Précautions lors de la spécification d'un nom de table à l'aide de l'annotation Table dans Spring Boot JPA](http://mao-instantlife.hatenablog.com/entry/2015/07/29/JPA? Annotation de table Utilisez pour pointer sur le nom de la table)

Recommended Posts

Je suis resté coincé en utilisant un cas de serpent pour le nom de variable dans Spring Boot
Je suis resté coincé dans le fichier
J'étais accro au @Transactional de Spring
[Pour les débutants] J'ai essayé d'utiliser DBUnit avec Eclipse
[Pour les débutants] J'ai essayé d'utiliser JUnit 5 avec Eclipse
Où je suis resté coincé dans le "tutoriel des rails" d'aujourd'hui (05/10/2020)
Où je suis resté coincé dans le "tutoriel des rails" d'aujourd'hui (06/10/20)
Où je suis resté coincé dans le "tutoriel sur les rails" d'aujourd'hui (04/10/20)
Où je suis resté coincé dans le "tutoriel sur les rails" d'aujourd'hui (07/10/20)
Exécution asynchrone des requêtes examinée dans Spring Boot 1.5.9
Testez la classe injectée sur le terrain dans le test de démarrage Spring sans utiliser le conteneur Spring
J'ai essayé d'utiliser l'instruction Extended for en Java
Je veux arrêter les cas de serpent avec des définitions de table
Je suis resté coincé dans un clone d'un tableau à deux dimensions
Je souhaite contrôler la taille de fichier maximale pour le téléchargement de fichiers pour chaque URL dans Spring Boot
Obtenez des informations d'erreur à l'aide de DefaultErrorAttributes et ErrorAttributeOptions dans Spring Boot 2.3
Je n'ai pas compris Spring Boot depuis un mois
J'ai essayé de démarrer avec Swagger en utilisant Spring Boot
J'ai créé un système d'exemple MVC simple à l'aide de Spring Boot
Comment contrôler les transactions dans Spring Boot sans utiliser @Transactional
Définir le paramètre contextuel dans Spring Boot
Multi-projets Spring Boot 2 avec Gradle
Changements majeurs dans Spring Boot 1.5
NoHttpResponseException dans Spring Boot + WireMock
Essayez d'utiliser Spring Boot Security
Spring Boot pour l'apprentissage des annotations
Comment créer un hinadan pour un projet Spring Boot à l'aide de SPRING INITIALIZR
Téléchargement et téléchargement de fichiers à l'aide d'Ajax avec Spring Boot (sans JQuery)
Intégré dans Spring Boot à l'aide d'un fichier de définition de bean nommé application.xml
Ce que j'ai fait lors de la migration de la série Spring Boot 1.4 vers la série 2.0
Ce que j'ai fait lors de la migration de la série Spring Boot 1.5 vers la série 2.0
Écrivons un code de test pour la fonction de connexion avec Spring Boot
Erreur inconnue dans la ligne 1 de pom.xml lors de l'utilisation de Spring Boot dans Eclipse