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:



enter image description here



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.










share|improve this question






















  • 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















up vote
0
down vote

favorite












I have a Spring MVC project and a MySQL Database which has a table with the following rows:



enter image description here



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.










share|improve this question






















  • 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













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:



enter image description here



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.










share|improve this question













I have a Spring MVC project and a MySQL Database which has a table with the following rows:



enter image description here



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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










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


















  • 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

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















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






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














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





















































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







Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)