I am developing an application using spring boot with hibernate. Actually previously i created a project using spring mvc with hibernate but now i started working on spring boot. So the problem is that i am unable to fetch data using my hql query which i used in spring mvc. Because i dont know where to write hql queries in spring boot project.
I tried and created a class and extend spring boot dao interface and implement my method but not getting proper data.
Here is my previous spring mvc code.
I created an entity class Rating.java and a dao class. Here is my Rating.java
@Entity
@Table(name = "rating")
public class Rating {
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name="author_id")
private long authId;
@Id
@Column(name="post_id")
private long postId;
@Column(name="rating_points")
private long points;
public Rating() { }
public Rating(long id) {
this.id = id;
}
public Rating(long authId, long postId, long points) {
this.authId = authId;
this.postId = postId;
this.points = points;
}
//Getters and setters
}
My spring mvc DAO class
@SuppressWarnings("unchecked")
public List<Rating> getRatingInfoById(long id) throws Exception {
session = sessionFactory.openSession();
String queryString = "select r.id from Rating r where r.postId=:id group by points";
Query query = session.createQuery(queryString);
query.setLong("id", id);
return query.list();
}
My spring boot code.
DAO Interface
@Transactional
public interface MyDaoInterface extends CrudRepository<Rating, Long>{
public List<Rating> getRatingInfoById(long id) throws Exception;
}
My DAO class where i implemented dao interface method
public class MyDao implements MyDaoInterface{
@Autowired
SessionFactory sessionFactory;
Session session = null;
Transaction tx = null;
@SuppressWarnings("unchecked")
public List<Rating> getRatingInfoById(long id) throws Exception {
session = sessionFactory.openSession();
String queryString = "select r.id from Rating r where r.postId=:id group by points";
Query query = session.createQuery(queryString);
query.setLong("id", id);
return query.list();
}
}