SQL Error: 1054, SQLState: 42S22

Course Queries Syllabus Queries 2 years ago

0 3 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Syllabus Queries related to Course Queries. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (3)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

Hello Everyone I'm trying to retrive some data from my database but I'm getting

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'subject_id' in 'where clause'

It works if I retrive some other column of same table. I'm using spring and hibernate

Here is my controller code

@RequestMapping(value = "/getAnyQuestion", method = RequestMethod.GET)
public @ResponseBody
String getAnyQuestion(
        @RequestParam(value = "subId", required = true) Long subId,
        @RequestParam(value = "questionType", required = true) String questionType) {

    Question questionList = questionService.getAnyQuestion(subId,questionType);

    if (questionList != null) {
        questionId = questionList.getId();
        return questionList.getQuestionText();
    }

    return "";
}

Here is my Service

 public Question getAnyQuestion(Long subId,String questionType) {             
    String query = "subject_id = " + subId +"  and "+ "questionType='" + questionType +"' and 1=1 order by rand()";       

    List<Question> questionList = hibernateTemplate.findByCriteria(DetachedCriteria.forClass(Question.class).add(Restrictions.sqlRestriction(query)),0,1);
    if (questionList.isEmpty()) {
        return null;
    }
    return questionList.get(0);
}

and here is my domain

@Entity

@Table(name = "question") public class Question {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(length = 50)
private String questionType;
@Column(length = 5000)
private String questionText;

@ManyToOne
private Syllabus syllabus;
@ManyToOne
private Subject subject;
@ManyToOne
private Roll roll;

public Long getId() {
    
                                                
                                                
0 views
0 shares
profilepic.png
manpreet 2 years ago

Disambiguate column_id in your WHERE clause:

where subject_id = 1  and questionType='University' and 1=1 order by rand() limit ?

I guess it is caused by this line of code:

String query = "subject_id = " + subId +"  and "+ "questionType='" + questionType +"' and 1=1 order by rand()";       

It should be something like

String query = "this_.subject_id = " + subId +"  and "+ "this_.questionType='" + questionType +"' and 1=1 order by rand()";

0 views   0 shares

profilepic.png
manpreet 2 years ago

Even I was facing this issue. The cause for this happened due to a TRIGGER created on a table was scripted wrong. I was referring to wrong column name/wrong table causing SQL Error: 1054, SQLState: 42S22


0 views   0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.