Kapil Earanky
Kapil Earanky

Reputation: 211

JPA native query gives incorrect output

I know this may sound silly but I've been stuck on this problem for too long!

I'm querying a PostgreSQL repository through JPA using native SQL queries. One of my queries looks like this:

@Query(value = "select * from gs where ?1 = ?2", nativeQuery = true)
public List<GsJsonStore> matchJson(String term, String value);

I'm testing the function using :

List<GsJsonStore> list = repo.matchJson("subject", "'Sub'");

The list is empty on running the query, however when I run the same query through PSQL command line using:

select * from gs where subject = 'Sub';

I get the correct output, records contatining the key-value pair are returned.

Where am I making the mistake?

Upvotes: 0

Views: 780

Answers (1)

Predrag Maric
Predrag Maric

Reputation: 24403

You can't use parameter for column name. Your query resolves to

select * from gs where 'subject' = '''Sub'''

EDIT: just saw @pozs already posted the same in comment

Upvotes: 1

Related Questions