Дата спящего режима, тип отметки времени сбивает с толку - PullRequest
0 голосов
/ 31 декабря 2018

Я новичок в спящем режиме, пожалуйста, помогите мне.спасибо.

Я запутался в .. типах hibernate, java и oracle.

  1. У меня есть 2 типа данных в База данных Oracle 11g .-> Date, Timestamp(6)

  2. I сопоставлено с использованием hibernate .-> date, timestamp

  3. Может быть отображено как Date(DB) до timestamp(hbm) и Date(DB) до Date(hbm)?

  4. и наоборот timestamp(DB) до date(hbm) и timestamp(DB до timestamp(hbm)?

  5. тогда какой тип следует использовать в коде Java?

Oracle DB / Hibernate / Java Code

  1. Дата / дата / Дата или отметка времени ??

  2. Дата / отметка времени / Дата или отметка времени ??

  3. Отметка времени / дата / Дата или отметка времени ??

  4. Отметка времени / отметка времени / Дата илиотметка времени ??

возможны четыре случая?Я так растерялся ... Я тестировал в своей базе данных oracle.

возникают некоторые проблемы, например, я не могу сэкономить часы, минуты, секунды ..

Помогите мне изучить основы гибернации.

файл отображения hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:oracle</property>
        <property name="hibernate.connection.username">scott</property>
        <property name="hibernate.connection.password">scott</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!-- <property name="hibernate.default_schema">MKYONG</property> -->
        <property name="show_sql">true</property>
        <mapping resource="com/mkyong/user/DBUser.hbm.xml"></mapping>
    </session-factory>
</hibernate-configuration>

Код пользователя (java)

public class DBUser implements java.io.Serializable {
    private int userId;
    private String username;
    private String createdBy;
    private Date createdDate;
    private Date createdTimestamp;
    private String createdTest;
    //something getter setter ~~
}

1 Ответ

0 голосов
/ 31 декабря 2018

Вы можете использовать как HBM, так и JAVA.

java.sql.Timestamp для отметки времени.TIMESTAMP в Oracle java.sql.Date для даты.ДАТА в Oracle

Оба вышеупомянутых класса происходят от java.util.Date.Вы можете использовать java.sql.Timestamp для обоих, но компонент времени будет отброшен Oracle для DATE во время INSERT / UPDATE.Использование java.sql.Date для DATE даст вам ясность.

Начиная с Java 8, вы можете использовать ниже.

org.hibernate.type.LocalDateType - Maps a java.time.LocalDate to a Oracle DATE    
org.hibernate.type.LocalDateTimeType - Maps a java.time.LocalDateTime to a Oracle TIMESTAMP
...