SQLException: Nom De Colonne Non Valide...?
J'ai un fichier JSP qui je suis déploiement au sein d'un Projet Java avec l'aide d'Eclipse, Maven, et Tomcat. J'ai quelques autres fichiers JSP presque identique à celui-ci, bien qu'ils exécuter différentes opérations. De toute façon, quand je vais sur la page, j'ai donné ce:
org.apache.jasper.JasperException: An exception occurred processing JSP page /entertime2.jsp at line 106
103: rsBug = psBug.executeQuery();
104:
105: while(rsBug.next()) {
106: Bug b = new Bug(rsBug);
107: out.println("<option value='" + b.get(Bug.BUG_ID) + "'>" + b.get(Bug.TITLE) + "</option>");
108: }
109: rsBug.close();
root cause
javax.servlet.ServletException: java.sql.SQLException: Invalid column name ixPersonOpenedBy.
Bug est une classe personnalisée qui peut prendre dans un jeu de résultats -- rsBug
-- et effectue les opérations suivantes:
setValue(Bug.BUG_ID,rs.getString(Bug.BUG_ID));
setValue(Bug.PERSON_OPENED_BY,rs.getString(Bug.PERSON_OPENED_BY));
setValue(Bug.PERSON_ASSIGNED_TO,rs.getString(Bug.PERSON_ASSIGNED_TO));
setValue(Bug.TITLE, rs.getString(Bug.TITLE));
setValue(Bug.PROJECT_ID,rs.getString(Bug.PROJECT_ID));
Où BUG_ID, PERSON_OPENED_BY, PERSON_ASSIGNED_TO, le TITRE, et PROJECT_ID sont tous de la chaîne membres du Bug de classe qui correspondent aux noms de colonne dans le Bug table stockée dans la base de données. Maintenant, il y a un ixPersonOpenedBy
colonne dans la table, mais il n'est jamais donné, à moi toute les problèmes avant. Je ne suis pas sûr s'il a quelque chose à voir avec l'instruction SQL j'essaie d'exécuter ou non, mais j'ai utilisé exactement la même déclaration devant l'un de mes autres JSP et il n'a pas donné, à moi de l'ennui. En outre, cette erreur n'était pas d'apparaître dans les plus tôt le déploiement du projet. J'ai eu une faute de frappe dans une autre variable, et une fois qu'il a été fixé, cet homme surgi outta nulle part.
De toute façon, n'importe qui peut voir pourquoi cette erreur sera donné quand je sais que la colonne "devrait" être valide? Si vous avez besoin de voir plus de la JSP, le Bug de la Classe, ou le Bug de la Table dans la base de données, faites le moi savoir; toute aide est appréciée.
EDIT: Voici les deux instructions SQL que j'utilise, mais je ne suis pas sûr si l'un et l'autre sont à l'origine du problème.
SELECT p.ixPerson, p.sFullName
FROM Person p, jwTeamMembers t
WHERE p.ixPerson = t.ixPerson
ORDER BY p.sFullName ASC
SELECT b.ixBug, b.sTitle
FROM Bug b, Person per, Project p, Area a, jwTime t, jwTeamMembers m, jwTeam jt, Status s, jwDivision d
WHERE per.ixPerson = t.ixPerson AND t.ixBug = b.ixBug AND b.ixProject = p.ixProject AND b.ixArea = a.ixArea
AND per.ixPerson = m.ixPerson AND m.ixTeam = jt.ixTeam AND b.ixStatus = s.ixStatus AND a.ixDivision *= d.ixDivision
AND (per.ixPerson = ?)
GROUP BY b.ixBug, b.sTitle
ORDER BY b.ixBug DESC
Le paramètre dans la deuxième déclaration est remplie:
psBug.setInt(1, Integer.valueOf(personId).intValue());
- vous pouvez poster l'instruction SQL?
- Une chose est sûre. J'ai ajouté les deux déclarations que j'utilise pour le post original.
- Et préférable de l'instruction create table, et la valeur d'un Bug.PERSON_OPENED_BY.
- Pourriez-vous ajouter ixPersonOpenedBy à votre première instruction select? Et de l'essayer 🙂
Vous devez vous connecter pour publier un commentaire.
La colonne mentionné n'est pas retourné par
SELECT
.Et en effet, aucun de vos deux
SELECT
requêtes spécifie que la colonne. Corrigé en conséquence. E. g.Bug
classe. Peut-être vous avez juste besoin de supprimer cette ligne si vous n'avez pas encore l'utiliser? 🙂 Par ailleurs, votre approche de la cartographie est honnêtement dit terrible et très 90's. En savoir un peu plus sur Javabeans et sur en évitant de code Java dans les pages JSP. Pour la crème le haut, jetez un oeil à JPA pour remplacer tout ce qui JDBC standard.