1. 程式人生 > >hibernate自動建表設定欄位型別為資料庫中為timestamp型別

hibernate自動建表設定欄位型別為資料庫中為timestamp型別

1:專案需要,欄位應該設計為timestamp型別,但自動建表後總是被設定為datetime(當時用的資料庫為sqlserver)

Google後,在配置檔案(Xxx.hbm.xml)中column新增

sql-type="timestamp" default="CURRENT_TIMESTAMP"

後自動建立表後欄位被設定為timestamp,預設為當前時間。

完整欄位配置:

<property name="recordTime" type="java.sql.Timestamp">
<column name="recordTime" not-null="true" sql-type="timestamp" default="CURRENT_TIMESTAMP"/>

</property>

2:如果是用註解配置呢?應該怎麼配置呢?如下即可:

@Column(name = "currenttime",columnDefinition="timestamp",insertable=false,updateable=false)
private String currenttime;

3:上面註解的關鍵在:columnDefinition="timestamp",timestamp就是sqlserver中定義的時間戳的型別。


4:sqlserver欄位型別,欄位名,表名,資料庫名是不區分大小寫的,所以

columnDefinition="timestamp"


columnDefinition="TimeStamp"

columnDefinition="TIMESTAMP"

都是等價的,本人親自測試過,讀者不信也可以去試試。

5:insertable=false,updatable=false也是有用的,因為sqlserver中的timestamp是sqlserver自動產生的,所以即使是null值也是不允許插入的,不然插入資料的報時間戳顯示插入錯誤。更新的時候亦是如此。

6:這裡我們java中的資料型別是String型別,sqlserver中是timestamp,更新的時候,我發現會出問題,hibernate中報的是,String不能轉化為integer,可見sqlserver中的timestamp本質就是一個16進位制的整形資料。

7:用hibernate更新資料,如果樣將查詢出來的timestamp作為where條件,如

update table set fieldname=fieldvalue where id=? and currenttime=?

上面的currenttime一定是轉化為十進位制整形後的值,不然就會報string轉化integer錯誤。

8:另外,本人還測試了一下mysql的timestamp,發現並不可用,mysql中的timestamp並不是整形的16進位制數。

相關推薦

hibernate自動設定型別資料庫timestamp型別

1:專案需要,欄位應該設計為timestamp型別,但自動建表後總是被設定為datetime(當時用的資料庫為sqlserver) Google後,在配置檔案(Xxx.hbm.xml)中column新增 sql-type="timestamp" default="CUR

JPA 通過註解自動生成 新增 名、型別、註釋

@Table - 對映表名 @Id - 主鍵 @GeneratedValue(strategy=GenerationType.IDENTITY) - 自動遞增生成 @Column(name = “dict_name”,columnDefinition=”varchar(100) COMMENT ‘字

mysql_參考

建表常用欄位 ID 主健 varchar(36)  或者 bigint 金額 decimal(15,2)  或者用整數 以分為單位   (主要是怕出錯避免精度) RESERVED_FIELD  reserved_field  預留欄位 varch

出現 Unable to instantiate default tuplizer,hibernate自動失敗,原因是在實體類聲明瞭成員變數describe,而describe是mysql關鍵字

歡迎使用Markdown編輯器寫部落格 本Markdown編輯器使用StackEdit修改而來,用它寫部落格,將會帶來全新的體驗哦: Markdown和擴充套件Markdown簡潔的語法 程式碼塊高亮 圖片連結和圖片上傳 LaTex數學公式 UML序列圖和

flask-連線資料庫flask_aqlalchemy--增加-刪除-修改

安裝模組 pip install pymysql pip install flask_aqlalchemy flaskpei配置檔案setting.py 中配置資料庫 設定資料庫url #coding=utf-8 class DataBaseSetting: DEBUG=Tr

hibernate自動 屬性填update 會報錯

自動建表 屬性填update 會報錯的解決方法 hibernate入門學習時,JUnit單元測試時,報錯 顯示以下錯誤: java.lang.ClassCastException: java.util.Collections$EmptyIte

Hibernate自動(使用DDL語句)

Gd上次和大家談到使用DDL語句實現自動建表失敗的問題,過了幾天再回頭看果然思路就變得清晰許多,原來是xxx.hbm.xml檔案的配置上出了問題,因為上次沒有用Junit進行測試,所以沒有看明白問題的描述,這裡不得不說一句,Junit真是個好東西,emmmmmm。Junit測

Springboot 之 Hibernate自動(Mysql)

本文章來自【知識林】 引入Maven依賴包 <dependency> <groupId>org.springframework.boot</groupI

hibernate自動資料庫及spring下自動資料庫

Hibernate支援自動建表,在開發階段很方便,可以保證hbm與資料庫表結構的自動同步。 如何使用呢?很簡單,只要在hibernate.cfg.xml里加上如下程式碼 Xml程式碼<prope

hibernate在用註解設定的預設值時遇到的問題

今天小編在用hibernate設定欄位的預設值的時候遇到的一個小問題,特意分享一下,以免後來人繼續犯錯。。 小編的pojo層的程式碼是這樣寫的。。 package com.Shayla.pojo;

JPA學習筆記---JPA實體Bean的建立---連結上一個博文:對實體Bean屬性進行操作:儲存日期型別,設定的長度,名字,是否空,可以宣告列舉;可以存放二進位制資料,可以存放

3.給上述生成的那個name欄位:更改資料庫中的欄位名,是否為空,欄位長度的設定,只需要   在Person.java檔案中,加上@Column(length=10,nullable=false,name="productname")//設定欄位的長度public Stri

Python3.5+SQL+Prometheus+Grafana報表/監控 pymysql 單獨獲取名稱 pymysql返回資料字典形式(key:value--列:值)

參考資料: pymysql 單獨獲取表的欄位名稱 pymysql返回資料為字典形式(key:value--列:值)   #coding=utf-8 import sys import pymysql import os from prometheus_cl

SQL 一個使用者有一個積分,假如資料庫有100多萬個使用者,若要在每年第一天凌晨將積分清零,你將考慮什麼,你將想什麼辦法解決?

                    alter table drop column score;                   alter table add colunm score int;                   可能會很快,但是需要試驗,試驗

oracle資料庫timestamp型別,轉換date 型別

0 1引入包 2import oracle.sql.TIMESTAMP;(注意不是import java.sql.Timestamp;) 3//呆段程式碼的意思是,取出上表中某條記錄的Add_time欄位,然後轉換為date型別,然後再由date型別轉換成字串。 Simp

Hiberntate不能自動的問題:hibernate.(*)

寫代碼 dial ddl ber pro nta auto OS div 今天寫代碼的時候發現啟動服務器之後不能自動建表了?wtf什麽鬼?最後發現了這個問題: hbm2ddl.auto前的hibernate.省略之後出的問題,可能是bug之後的版本應該會修復 <pro

hibernate不能自動:MySQLSyntaxErrorException: Table '' doesn't exist

mysql mysql5 nat nta exist ble property cep exception 修改前: <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect<

SQL Server 2008獲取一個型別,長度,是否主鍵,是否空,註釋等資訊

SELECT [表名]= case when a.colorder=1 then d. name else '' end , [表說明]= case when

sqlserver 獲取所有型別等資訊

USE [MultipleAnalysisDataFY] GO /****** Object: View [dbo].[selectfieldtype] Script Date: 2018/11/7 星期三 12:02:27 ******/ SET ANSI_NULLS ON GO SET

hibernate通過pojo自動操作

1. 多對一 如球員和球隊的關係:多個球員在同一個球隊中。 1.1 類圖 TeamPojo:屬性 + set/get public class TeamPojo{ private Integer teamId; private String teamName; private String team

es站內站內搜尋筆記(一) Mysql 如何設定自動獲取當前時間

es站內站內搜尋筆記(一) 第一節:   概述 使用elasticsearch進行網站搜尋,es是當下最流行的分散式的搜尋引擎及大資料分析的中介軟體,搜房網的主要功能:強大的搜尋框,與百度地圖相結合,實現地圖找房,包括前臺模組和後臺模組。   elasticsearch + mysql +kafka實