Sql 在web应用程序中使用日期字段存储HH:MM:SS(Spring和Hibernate)
我正在使用Spring和Hibernate开发RESTAPI。对于PUT操作,我需要存储时间和日期。从我的调查中,我发现应用程序返回的是时间和日期。但在数据库表中写入此字段时,只有日期字段可见,时间字段显示为默认00:00:00。在数据库中,DateTime列由TIMESTAMP字段声明 MyApproach 应用程序正在使用日期字段(java.util.Date导入)。因此,我尝试将日期字段更改为时间戳字段(导入到juva.sql.Timestamp),因为它同时存储时间和日期。但我无法解决它 请查找我的hibernatequery代码:此代码用于在数据库中插入数据(PUT操作)Sql 在web应用程序中使用日期字段存储HH:MM:SS(Spring和Hibernate),sql,spring,hibernate,jdbc,java.util.date,Sql,Spring,Hibernate,Jdbc,Java.util.date,我正在使用Spring和Hibernate开发RESTAPI。对于PUT操作,我需要存储时间和日期。从我的调查中,我发现应用程序返回的是时间和日期。但在数据库表中写入此字段时,只有日期字段可见,时间字段显示为默认00:00:00。在数据库中,DateTime列由TIMESTAMP字段声明 MyApproach 应用程序正在使用日期字段(java.util.Date导入)。因此,我尝试将日期字段更改为时间戳字段(导入到juva.sql.Timestamp),因为它同时存储时间和日期。但我无法解决它
公共订阅者插入订阅者(订阅者订阅者,查找键查找键){
//此值不能为空
if(subscriber.getLastModifiedTime()==null)subscriber.setLastModifiedTime(new Date());
//初始化INSERT语句
StringBuilder queryBuilder=新StringBuilder(“插入用户(”);
append(OracleStandardAttributeNames.id.toString());
//设置CDID列
对于(int i=0;ipublic Subscriber insertSubscriber(Subscriber subscriber, LookupKeys lookupKeys) {
// This value cannot be null
if (subscriber.getLastModifiedTime() == null) subscriber.setLastModifiedTime(new Date());
// Initialize our INSERT statement
StringBuilder queryBuilder = new StringBuilder("INSERT INTO USERS (");
queryBuilder.append(OracleStandardAttributeNames.id.toString());
// Set the CDID column(s)
for (int i = 0; i < 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");
for (int i = 0; i < 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);
// We do not want to 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 the statement parameters
Session session = (Session) entityManager.getDelegate();
org.hibernate.Query hibernateQuery = session.createSQLQuery(queryBuilder.toString());
for (int i = 0; i < 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 the INSERT
hibernateQuery.executeUpdate();
// Return managed Subscriber
return findByCustomerDefinedId(subscriber.getCustomerDefinedId(), lookupKeys);
}
@Temporal(TemporalType.TIMESTAMP)
private Date myDate;