Instead of column values i am getting the column name in a list from below code
for example
should get [12.4,54.6,65.7,88.7,44.8]
but getting [onsite,onsite,onsite,onsite,onsite]
DAO:
public List<String> getLocation(String location,String roles, String title,String tier,Integer level) {
List<String> result = new ArrayList<>();
try {
Query query = entityManager.createNamedQuery("getLocation");
query.setParameter("location", location);//location value onsite
query.setParameter("title",title);
query.setParameter("roles",roles);
query.setParameter("tier", tier);
query.setParameter("level", level);
result = query.getResultList();
}
catch(Exception e) {
logger.error(e.getMessage());
}
return result;
}
Entity class:
@Entity
@NamedNativeQueries({
@NamedNativeQuery(name = "getLocation",
query = "select :location FROM myschema.test where title=:title and roles=:roles and level=:level and tier=:tier"
)
})
@Table(name = "test", schema = "mySchema")
public class TestEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
@Column(name = "title")
private String title;
@Column(name = "roles")
private String roles;
@Column(name = "level")
private Integer level;
@Column(name = "tier")
private String tier;
@Column(name = "diversity")
private String diversity;
@Column(name = "onsite")
private Double onsite;
@Column(name = "offsite")
private Double offsite;
}
Service code:
List dbLocations = supplierDao.getLocation("onsite", "job role","job title","tier1","8");
jpa Named query is returning list of colum name instead of values