当前位置: 首页 > 面试题库 >

Hibernate在将Java Calendar对象读取和写入SQL TIMESTAMP时使用什么时区?

郑松
2023-03-14
问题内容

当Hibernate Java
Calendar对象
写入 SQL TIMESTAMP列时,它将日期,计算机日期或日历对象(或其他日期)中指定的日期调整到哪个时区?

当Hibernate TIMESTAMP到日历对象,以哪个时区并把它翻译的日期?


问题答案:

当Hibernate将Java Calendar对象写入SQL
TIMESTAMP列时,它将日期,计算机日期或Calendar对象(或其他日期)中指定的日期调整到哪个时区?

Hiberante
3.x在CalendarType(请参阅HB-1006)中使用以下内容:

public void set(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {
    final Calendar cal = (Calendar) value;
    //st.setTimestamp( index,  new Timestamp( cal.getTimeInMillis() ), cal ); //JDK 1.5 only
    st.setTimestamp( index,  new Timestamp( cal.getTime().getTime() ), cal );
}

因此,Hibernate使用PreparedStatement#setTimestamp(int, Timestamp, Calendar)哪个使用日历的时区。

当Hibernate将TIMESTAMP读入日历对象时,它将日期转换到哪个时区?

好了,再次让我们看一下这个CalendarType类:

public Object get(ResultSet rs, String name) throws HibernateException, SQLException {

    Timestamp ts = rs.getTimestamp(name);
    if (ts!=null) {
        Calendar cal = new GregorianCalendar();
        if ( Environment.jvmHasTimestampBug() ) {
            cal.setTime( new Date( ts.getTime() + ts.getNanos() / 1000000 ) );
        }
        else {
            cal.setTime(ts);
        }
        return cal;
    }
    else {
        return null;
    }

}

因此,Hibernate会 使用 _ 默认时区* _中 _ 的默认时区中_ 的当前时间来 _构造默认
GregorianCalendar
*_。



 类似资料:
  • 问题内容: 当Hibernate 将 Java对象 写入 SQL列时,它将日期,计算机日期或日历对象(或其他日期)中指定的日期调整到哪个时区? 当Hibernate 读 的到日历对象,以哪个时区并把它翻译的日期? 问题答案: 当Hibernate将Java Calendar对象写入SQL TIMESTAMP列时,它将日期,计算机日期或Calendar对象(或其他日期)中指定的日期调整到哪个时区?

  • 问题内容: 有人可以在何时使用以及在Hibernate中为我提供用例帮助吗? 问题答案: @Version用于通过Hibernate 实现乐观锁定,这意味着没有两个事务会在冲突时同时覆盖数据。 如果两个线程同时读取数据,并且两个线程都尝试使用不同的值更新同一行,则Hibernate将使用该字段来检查该行是否已更新。 在提交之前,每个事务都将验证没有其他事务已修改其数据。如果被修改,则最后一个事务遇

  • 问题内容: 我正在为Android设计一个手写应用程序。 每当用户按下Enter键时,我都希望将信息()写入日志文件。 之后,我想读取存储的信息。 这是我的类的一部分,带有自定义的write方法: 这是读取方法: 当我在文件中仅保存一个对象时,它会很好地工作。当我尝试节省更多时,阅读不起作用(抛出)。 它在while循环中仅读取一个对象! 在主类中,我仅使用两种简单的方法: 定义为: 请求的更新:

  • 我有两个表1)krs_question_bank 2)krs_options 而我正在调用Session.Save(问题)。生成了Hibernate查询,但..我有以下错误。有什么办法可以解决这个错误吗?

  • 问题内容: 我必须阅读tomcat日志文件,并在一段时间(例如:一个小时)后再次读取该文件(仅针对新添加的内容),因此我创建了RandomAccessFile来记录我完成的最后一个位置并使用BufferedReader.readLine()方法。 但是,我发现有时我无法读取文件的整行。 例如,tomcat正在尝试编写以下内容(仅作为示例): 192.168.0.0本地主机/index.html .

  • 我的应用程序使用Java、HiberNate和IBMDB2数据库。我希望在更新和写入数据时使用悲观锁定,以便其他线程在尝试更新数据之前需要等待资源可用。但是,我希望线程始终能够读取数据(无论它是否被锁定,即事务对数据开放),并且读取操作永远不会锁定数据。在HiberNate和IBMDB2中,什么隔离级别可以实现这一点?谢谢。