Search code examples
sqlentitymanager

EntityManager.getResultList() does not return the expected result


select a.AssignAccOwner,a.AssignBillRate,a.AssignPerdiem from orion_db.assignment as a where a.AssignmentId=25

I am able to execute the above query successfully . But when I try to execute the same query programatically using entityManager.createnativeQuery I am getting the resultList as 0 Below is the code

buff.append("select a.AssignAccOwner,a.AssignBillRate,a.AssignPerdiem from orion_db.assignment as a where a.AssignmentId=25");
                Query q2 = entityManager.createNativeQuery(buff.toString());
        resultList = q2.getResultList();                
        System.out.println("Geting the resultList in dao layer " + q2.getResultList().size());
        System.out.println("Geting the result in dao layer " + resultList.size());

This is the result which I get in the log

Geting the resultList in dao layer 0
Geting the result in dao layer 0

Below is the assignment.java entity class

/** * Assignment generated by hbm2java */

  @Entity
    @Table(name = "assignment")
    public class Assignment implements java.io.Serializable {

private static final long serialVersionUID = 1L;
        private Integer assignmentId;       
        private String assignAccOwner;  
        private BigDecimal assignBillRate;


        private String assignPerdiem;

        @Id
        @GeneratedValue(strategy = IDENTITY)

        @Column(name = "AssignmentId", unique = true, nullable = false)
        public Integer getAssignmentId() {
            return this.assignmentId;
        }

        public void setAssignmentId(Integer assignmentId) {
            this.assignmentId = assignmentId;
        }

        @Column(name = "AssignBillRate", precision = 10)
        public BigDecimal getAssignBillRate() {
            return this.assignBillRate;
        }

        public void setAssignBillRate(BigDecimal assignBillRate) {
            this.assignBillRate = assignBillRate;
        }


        @Column(name = "AssignPerdiem", length = 30)
        public String getAssignPerdiem() {
            return this.assignPerdiem;
        }

        public void setAssignPerdiem(String assignPerdiem) {
            this.assignPerdiem = assignPerdiem;
        }

        @Column(name = "AssignAccOwner", length = 100)
        public String getAssignAccOwner() {
            return this.assignAccOwner;
        }

        public void setAssignAccOwner(String assignAccOwner) {
            this.assignAccOwner = assignAccOwner;
        }

    }

Solution

  • It was not the code issue , I was not connected to the local database and hence I was not getting the expected result..