Hibernate not retrieving correct row given a date from MySQL Database
up vote
0
down vote
favorite
I have a Spring MVC
project and a MySQL
Database which has a table with the following rows:
I have a function that gets row by the date field
:
@Override
public List listAllTimeSheetDetailsByDate(LocalDate date) {
CriteriaBuilder cb = getSession().getCriteriaBuilder();
CriteriaQuery<TimeSheetDetails> cr = cb.createQuery(TimeSheetDetails.class);
Root<TimeSheetDetails> root = cr.from(TimeSheetDetails.class);
cr.select(root).where(cb.equal(root.get("date"), date));
Query<TimeSheetDetails> query = getSession().createQuery(cr);
List<TimeSheetDetails> results = query.getResultList();
return results;
}
I am using Hibernate's getCriteriaBuilder()
and createQuery()
implementations.
The problem is that when I want to retrieve the row with date 2018-11-03
I get back the row which corresponds to the date 2018-11-02
. I am using LocalDate
, so the days of the month do not start at 0
. Here is Hibernate's Log
:
INFO [default task-4] stdout - Hibernate: select timesheetd0_.timeSheetDetailsId as timeShee1_2_, timesheetd0_.date as date2_2_, timesheetd0_.employeeId as employee3_2_, timesheetd0_.endTime as endTime4_2_, timesheetd0_.startTime as startTim5_2_ from TimeSheetDetails timesheetd0_ where timesheetd0_.date=?
**TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [1] as [DATE] - [2018-11-03]**
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([timeShee1_2_] : [INTEGER]) - [4]
**TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([date2_2_] : [DATE]) - [2018-11-02]**
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([employee3_2_] : [VARCHAR]) - [3]
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([endTime4_2_] : [TIME]) - [05:00]
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([startTim5_2_] : [TIME]) - [01:00]
I do not understand why its getting the previous date. Furthermore, when I want to retrieve the "2018-11-30"
date, I get back an empty set. I do not understand why this is occurring.
mysql spring hibernate spring-data-jpa hibernate-criteria
add a comment |
up vote
0
down vote
favorite
I have a Spring MVC
project and a MySQL
Database which has a table with the following rows:
I have a function that gets row by the date field
:
@Override
public List listAllTimeSheetDetailsByDate(LocalDate date) {
CriteriaBuilder cb = getSession().getCriteriaBuilder();
CriteriaQuery<TimeSheetDetails> cr = cb.createQuery(TimeSheetDetails.class);
Root<TimeSheetDetails> root = cr.from(TimeSheetDetails.class);
cr.select(root).where(cb.equal(root.get("date"), date));
Query<TimeSheetDetails> query = getSession().createQuery(cr);
List<TimeSheetDetails> results = query.getResultList();
return results;
}
I am using Hibernate's getCriteriaBuilder()
and createQuery()
implementations.
The problem is that when I want to retrieve the row with date 2018-11-03
I get back the row which corresponds to the date 2018-11-02
. I am using LocalDate
, so the days of the month do not start at 0
. Here is Hibernate's Log
:
INFO [default task-4] stdout - Hibernate: select timesheetd0_.timeSheetDetailsId as timeShee1_2_, timesheetd0_.date as date2_2_, timesheetd0_.employeeId as employee3_2_, timesheetd0_.endTime as endTime4_2_, timesheetd0_.startTime as startTim5_2_ from TimeSheetDetails timesheetd0_ where timesheetd0_.date=?
**TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [1] as [DATE] - [2018-11-03]**
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([timeShee1_2_] : [INTEGER]) - [4]
**TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([date2_2_] : [DATE]) - [2018-11-02]**
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([employee3_2_] : [VARCHAR]) - [3]
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([endTime4_2_] : [TIME]) - [05:00]
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([startTim5_2_] : [TIME]) - [01:00]
I do not understand why its getting the previous date. Furthermore, when I want to retrieve the "2018-11-30"
date, I get back an empty set. I do not understand why this is occurring.
mysql spring hibernate spring-data-jpa hibernate-criteria
Have you tried to change the system timezone?
– TranNgocKhoa
Nov 10 at 5:06
No, I do not think. How would I do that?
– user5139637
Nov 10 at 15:33
Change it in your system, where the application is run.
– TranNgocKhoa
Nov 11 at 10:15
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a Spring MVC
project and a MySQL
Database which has a table with the following rows:
I have a function that gets row by the date field
:
@Override
public List listAllTimeSheetDetailsByDate(LocalDate date) {
CriteriaBuilder cb = getSession().getCriteriaBuilder();
CriteriaQuery<TimeSheetDetails> cr = cb.createQuery(TimeSheetDetails.class);
Root<TimeSheetDetails> root = cr.from(TimeSheetDetails.class);
cr.select(root).where(cb.equal(root.get("date"), date));
Query<TimeSheetDetails> query = getSession().createQuery(cr);
List<TimeSheetDetails> results = query.getResultList();
return results;
}
I am using Hibernate's getCriteriaBuilder()
and createQuery()
implementations.
The problem is that when I want to retrieve the row with date 2018-11-03
I get back the row which corresponds to the date 2018-11-02
. I am using LocalDate
, so the days of the month do not start at 0
. Here is Hibernate's Log
:
INFO [default task-4] stdout - Hibernate: select timesheetd0_.timeSheetDetailsId as timeShee1_2_, timesheetd0_.date as date2_2_, timesheetd0_.employeeId as employee3_2_, timesheetd0_.endTime as endTime4_2_, timesheetd0_.startTime as startTim5_2_ from TimeSheetDetails timesheetd0_ where timesheetd0_.date=?
**TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [1] as [DATE] - [2018-11-03]**
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([timeShee1_2_] : [INTEGER]) - [4]
**TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([date2_2_] : [DATE]) - [2018-11-02]**
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([employee3_2_] : [VARCHAR]) - [3]
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([endTime4_2_] : [TIME]) - [05:00]
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([startTim5_2_] : [TIME]) - [01:00]
I do not understand why its getting the previous date. Furthermore, when I want to retrieve the "2018-11-30"
date, I get back an empty set. I do not understand why this is occurring.
mysql spring hibernate spring-data-jpa hibernate-criteria
I have a Spring MVC
project and a MySQL
Database which has a table with the following rows:
I have a function that gets row by the date field
:
@Override
public List listAllTimeSheetDetailsByDate(LocalDate date) {
CriteriaBuilder cb = getSession().getCriteriaBuilder();
CriteriaQuery<TimeSheetDetails> cr = cb.createQuery(TimeSheetDetails.class);
Root<TimeSheetDetails> root = cr.from(TimeSheetDetails.class);
cr.select(root).where(cb.equal(root.get("date"), date));
Query<TimeSheetDetails> query = getSession().createQuery(cr);
List<TimeSheetDetails> results = query.getResultList();
return results;
}
I am using Hibernate's getCriteriaBuilder()
and createQuery()
implementations.
The problem is that when I want to retrieve the row with date 2018-11-03
I get back the row which corresponds to the date 2018-11-02
. I am using LocalDate
, so the days of the month do not start at 0
. Here is Hibernate's Log
:
INFO [default task-4] stdout - Hibernate: select timesheetd0_.timeSheetDetailsId as timeShee1_2_, timesheetd0_.date as date2_2_, timesheetd0_.employeeId as employee3_2_, timesheetd0_.endTime as endTime4_2_, timesheetd0_.startTime as startTim5_2_ from TimeSheetDetails timesheetd0_ where timesheetd0_.date=?
**TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [1] as [DATE] - [2018-11-03]**
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([timeShee1_2_] : [INTEGER]) - [4]
**TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([date2_2_] : [DATE]) - [2018-11-02]**
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([employee3_2_] : [VARCHAR]) - [3]
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([endTime4_2_] : [TIME]) - [05:00]
TRACE [default task-4] org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([startTim5_2_] : [TIME]) - [01:00]
I do not understand why its getting the previous date. Furthermore, when I want to retrieve the "2018-11-30"
date, I get back an empty set. I do not understand why this is occurring.
mysql spring hibernate spring-data-jpa hibernate-criteria
mysql spring hibernate spring-data-jpa hibernate-criteria
asked Nov 10 at 1:22
user5139637
305320
305320
Have you tried to change the system timezone?
– TranNgocKhoa
Nov 10 at 5:06
No, I do not think. How would I do that?
– user5139637
Nov 10 at 15:33
Change it in your system, where the application is run.
– TranNgocKhoa
Nov 11 at 10:15
add a comment |
Have you tried to change the system timezone?
– TranNgocKhoa
Nov 10 at 5:06
No, I do not think. How would I do that?
– user5139637
Nov 10 at 15:33
Change it in your system, where the application is run.
– TranNgocKhoa
Nov 11 at 10:15
Have you tried to change the system timezone?
– TranNgocKhoa
Nov 10 at 5:06
Have you tried to change the system timezone?
– TranNgocKhoa
Nov 10 at 5:06
No, I do not think. How would I do that?
– user5139637
Nov 10 at 15:33
No, I do not think. How would I do that?
– user5139637
Nov 10 at 15:33
Change it in your system, where the application is run.
– TranNgocKhoa
Nov 11 at 10:15
Change it in your system, where the application is run.
– TranNgocKhoa
Nov 11 at 10:15
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235225%2fhibernate-not-retrieving-correct-row-given-a-date-from-mysql-database%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have you tried to change the system timezone?
– TranNgocKhoa
Nov 10 at 5:06
No, I do not think. How would I do that?
– user5139637
Nov 10 at 15:33
Change it in your system, where the application is run.
– TranNgocKhoa
Nov 11 at 10:15