sql - Store HH:MM:SS with Date field in web application(Spring+Hibernate) -
i working on rest api using spring , hibernate. put operation need store time along date. investigation, found out application returning time along date. while writing field in database table, date field visible , time field shown default 00:00:00. in database datetime column declared timestamp field.
myapproach
the application using date field(java.util.date import). tried change date field timestamp field(import juva.sql.timestamp) stores both time , date. couldn't solve it.
please find hibernatequery code: code insert data in database(put operation)
public subscriber insertsubscriber(subscriber subscriber, lookupkeys lookupkeys) { // value cannot null if (subscriber.getlastmodifiedtime() == null) subscriber.setlastmodifiedtime(new date()); // initialize our insert statement stringbuilder querybuilder = new stringbuilder("insert users ("); querybuilder.append(oraclestandardattributenames.id.tostring()); // set cdid column(s) (int = 0; < lookupkeys.getkeycount(); i++) { queryfriendlynames(querybuilder, null, lookupkeys.getkey(i).getcolumnname(), subscriber.getcustomerdefinedid().get(i), false); } //simpledateformat sdf = new simpledateformat("yyyy-mm-dd hh-mm-ss") ; //sdf.format(subscriber.getlastmodifiedtime()); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.firstname.tostring(), subscriber.getfirstname(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.lastname.tostring(), subscriber.getlastname(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.email.tostring(), subscriber.getemailaddress(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.divisionmembership.tostring(), subscriber.getdivisionmembership(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.divisionsubscriptionstatus.tostring(), subscriber.getdivisionsubscriptionstatus(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.lastreferredtime.tostring(), subscriber.getlastreferredtime(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.postalcode.tostring(), subscriber.getpostalcode(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.prefersmobile.tostring(), subscriber.getprefersmobile(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.lastsuppressedtime.tostring(), subscriber.getlastsuppressedtime(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.emailformat.tostring(), subscriber.getemailprogram(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.deademailtime.tostring(), subscriber.getdeademailtime(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.datecreated.tostring(), subscriber.getdatecreated(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.lastmodifiedtime.tostring(), subscriber.getlastmodifiedtime(), false); //queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.lastmodifiedtime.tostring(), sdf.format(subscriber.getlastmodifiedtime()), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.subscribed.tostring(), subscriber.getsubscribed(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.lastmodifiedonwebtime.tostring(), subscriber.getlastmodifiedonwebtime(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.lastsubscribedtime.tostring(), subscriber.getlastsubscribedtime(), false); queryfriendlynames(querybuilder, lookupkeys, oraclestandardattributenames.lastunsubscribedtime.tostring(), subscriber.getlastunsubscribedtime(), false); querybuilder.append(") values ("); querybuilder.append("useridsequence.nextval"); (int = 0; < lookupkeys.getkeycount(); i++) { queryfriendlyvalues(querybuilder, null, "customerdefinedid" + i, subscriber.getcustomerdefinedid().get(i), false); } queryfriendlyvalues(querybuilder, lookupkeys, "firstname", subscriber.getfirstname(), false); queryfriendlyvalues(querybuilder, lookupkeys, "lastname", subscriber.getlastname(), false); // not want include "email" twice. if (!lookupkeys.isemailakey()) { queryfriendlyvalues(querybuilder, lookupkeys, "email", subscriber.getemailaddress(), false); } queryfriendlyvalues(querybuilder, lookupkeys, "divisionmembership", subscriber.getdivisionmembership(), false); queryfriendlyvalues(querybuilder, lookupkeys, "divisionsubscriptionstatus", subscriber.getdivisionsubscriptionstatus(), false); queryfriendlyvalues(querybuilder, lookupkeys, "lastreferredtime", subscriber.getlastreferredtime(), false); queryfriendlyvalues(querybuilder, lookupkeys, "postalcode", subscriber.getpostalcode(), false); queryfriendlyvalues(querybuilder, lookupkeys, "prefersmobile", subscriber.getprefersmobile(), false); queryfriendlyvalues(querybuilder, lookupkeys, "lastsuppressedtime", subscriber.getlastsuppressedtime(), false); queryfriendlyvalues(querybuilder, lookupkeys, "emailprogram", subscriber.getemailprogram(), false); queryfriendlyvalues(querybuilder, lookupkeys, "deademailtime", subscriber.getdeademailtime(), false); queryfriendlyvalues(querybuilder, lookupkeys, "datecreated", subscriber.getdatecreated(), false); queryfriendlyvalues(querybuilder, lookupkeys, "lastmodifiedtime", subscriber.getlastmodifiedtime(), false); //queryfriendlyvalues(querybuilder, lookupkeys, "lastmodifiedtime", sdf.format(subscriber.getlastmodifiedtime()), false); queryfriendlyvalues(querybuilder, lookupkeys, "subscribed", subscriber.getsubscribed(), false); queryfriendlyvalues(querybuilder, lookupkeys, "lastmodifiedonwebtime", subscriber.getlastmodifiedonwebtime(), false); queryfriendlyvalues(querybuilder, lookupkeys, "lastsubscribedtime", subscriber.getlastsubscribedtime(), false); queryfriendlyvalues(querybuilder, lookupkeys, "lastunsubscribedtime", subscriber.getlastunsubscribedtime(), false); querybuilder.append(")"); // set statement parameters session session = (session) entitymanager.getdelegate(); org.hibernate.query hibernatequery = session.createsqlquery(querybuilder.tostring()); (int = 0; < lookupkeys.getkeycount(); i++) { hibernatequery.setparameter("customerdefinedid" + i, subscriber.getcustomerdefinedid().get(i)); } if (subscriber.getfirstname() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.firstname.tostring())) hibernatequery.setstring("firstname", subscriber.getfirstname()); if (subscriber.getlastname() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.lastname.tostring())) hibernatequery.setstring("lastname", subscriber.getlastname()); if (subscriber.getemailaddress() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.email.tostring())) hibernatequery.setstring("email", subscriber.getemailaddress()); if (subscriber.getdivisionmembership() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.divisionmembership.tostring())) hibernatequery.setlong("divisionmembership", subscriber.getdivisionmembership()); if (subscriber.getdivisionsubscriptionstatus() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.divisionsubscriptionstatus.tostring())) hibernatequery.setlong("divisionsubscriptionstatus", subscriber.getdivisionsubscriptionstatus()); if (subscriber.getpostalcode() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.postalcode.tostring())) hibernatequery.setstring("postalcode", subscriber.getpostalcode()); if (subscriber.getprefersmobile() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.prefersmobile.tostring())) hibernatequery.setinteger("prefersmobile", subscriber.getprefersmobile()); if (subscriber.getlastsuppressedtime() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.lastsuppressedtime.tostring())) hibernatequery.settimestamp("lastsuppressedtime", utils.getgmtdatefromlocaldate(subscriber.getlastsuppressedtime())); if (subscriber.getemailprogram() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.emailformat.tostring())) hibernatequery.setlong("emailprogram", subscriber.getemailprogram()); if (subscriber.getdeademailtime() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.deademailtime.tostring())) hibernatequery.settimestamp("deademailtime", utils.getgmtdatefromlocaldate(subscriber.getdeademailtime())); if (subscriber.getdatecreated() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.datecreated.tostring())) hibernatequery.settimestamp("datecreated", utils.getgmtdatefromlocaldate(subscriber.getdatecreated())); if (subscriber.getlastmodifiedtime() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.lastmodifiedtime.tostring())) hibernatequery.settimestamp("lastmodifiedtime", utils.getgmtdatefromlocaldate(subscriber.getlastmodifiedtime())); // hibernatequery.settimestamp("lastmodifiedtime", utils.parsedateiso8601(subscriber.getlastmodifiedtime())); if (subscriber.getsubscribed() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.subscribed.tostring())) hibernatequery.setinteger("subscribed", subscriber.getsubscribed()); if (subscriber.getlastmodifiedonwebtime() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.lastmodifiedonwebtime.tostring())) hibernatequery.settimestamp("lastmodifiedonwebtime", utils.getgmtdatefromlocaldate(subscriber.getlastmodifiedonwebtime())); if (subscriber.getlastsubscribedtime() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.lastsubscribedtime.tostring())) hibernatequery.settimestamp("lastsubscribedtime", utils.getgmtdatefromlocaldate(subscriber.getlastsubscribedtime())); if (subscriber.getlastunsubscribedtime() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.lastunsubscribedtime.tostring())) hibernatequery.settimestamp("lastunsubscribedtime", utils.getgmtdatefromlocaldate(subscriber.getlastunsubscribedtime())); if (subscriber.getlastreferredtime() != null && !lookupkeys.iscolumnnamealookupkey(oraclestandardattributenames.lastreferredtime.tostring())) hibernatequery.settimestamp("lastreferredtime", utils.getgmtdatefromlocaldate(subscriber.getlastreferredtime())); // execute insert hibernatequery.executeupdate(); // return managed subscriber return findbycustomerdefinedid(subscriber.getcustomerdefinedid(), lookupkeys); } please let me know of possible apporach. in advance.
regards, rakesh
if store java.lang.date in database, need tell hibernate or jpa "part" of date should stored. in jpa , hibernate (with annotations) done @temporal annotation.
time- time of daydate- datetimestamp- date time
for example:
@temporal(temporaltype.timestamp) private date mydate;
Comments
Post a Comment