java 實體類規范_實體類的規范

1.Boolean類型

1.1.使用Boolean類型,而不是Byte類型

1.2.數據庫字段名使用is_開頭

1.3.實體類字段名不使用is開頭

例子

/**

* 是否為新消息

*/

@Column(name = "is_new_message", nullable = false)

private Boolean newMessage;

2.Enum類型

1.使用Convert注解, 并指定coverter類

例子

/**

* 詢盤類型

*/

@Column(name = "type", nullable = false)

@Convert(converter = Type.Convert.class)

private Type type;

2.枚舉類型的規范

2.1. 枚舉類需要實現EntityEnum接口

2.2. 在枚舉類內部定義轉換類, 并實現EntityEnumConverter抽象類

例子

public enum Type implements EntityEnum {

/**

* FRQ詢盤

*/

RFQ(1),

/**

* 詢盤

*/

PRODUCT_INQUIRY(2),

/**

* 私人展會詢盤

*/

PRIVATE_PRODUCT_INQUIRY(3),

/**

* 供應商詢盤

*/

SUPPLIER_INQUIRY(4);

private Integer code;

Type(Integer code) {

this.code = code;

}

public Integer getCode() {

return this.code;

}

@Converter

public static class Convert extends EntityEnumConverter {

}

附錄

枚舉字段接口

/**

* 實體類的枚舉字段都需要實現該接口

* @author Jianhua Ying

*/

public interface EntityEnum {

Integer getCode();

}

枚舉字段轉換器抽象類

import javax.persistence.AttributeConverter;

import java.lang.reflect.Method;

import java.lang.reflect.ParameterizedType;

/**

* 實體類的枚舉字段的轉換器基類

*

* @param 枚舉字段的類

*/

public abstract class EntityEnumConverter implements AttributeConverter {

private Class xclazz;

private Method valuesMethod;

@SuppressWarnings("unchecked")

public EntityEnumConverter() {

this.xclazz = (Class) (((ParameterizedType) this.getClass().getGenericSuperclass())

.getActualTypeArguments())[0];

try {

valuesMethod = xclazz.getMethod("values");

} catch (Exception e) {

throw new RuntimeException("can't get values method from " + xclazz);

}

}

@Override

public Integer convertToDatabaseColumn(EntityEnum attribute) {

return attribute == null ? null : attribute.getCode();

}

@SuppressWarnings("unchecked")

@Override

public X convertToEntityAttribute(Integer dbData) {

try {

X[] values = (X[]) valuesMethod.invoke(null);

for (X x : values) {

if (x.getCode().equals(dbData)) {

return x;

}

}

} catch (Exception e) {

throw new RuntimeException("can't convertToEntityAttribute" + e.getMessage());

}

throw new RuntimeException("unknown dbData " + dbData);

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539987.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539987.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539987.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

01電話撥號器

實例非常簡單,意在體驗Android的Intent,用戶權限。 Intent 見 http://blog.csdn.net/zengmingen/article/details/49586045 用戶權限 見 http://blog.csdn.net/zengmingen/article/details/49586569 --------------------------------------------------…

微信小程序筆記六模塊化 —— module.exports

微信小程序中所有 js 文件作用域皆為獨立的,每一個 js 文件即為一個模塊。模塊與模塊之間的引用通過 module.exports 或 exports 對外暴露接口。 注意: exports 是 module.exports 的一個引用,因此在模塊里邊隨意更改 exports 的指向會造成未…

java常用的統計_(OJ)Java常用類-統計數字次數

統計數字次數Problem Description命令行輸入一個由數字組成的任意字符串,統計出每個數字出現的次數。Input Description1239586838Output Description0 counts:01 counts:12 counts:13 counts:24 counts:05 counts:16 counts:17 counts:08 counts:39 counts:1解題代碼import ja…

02發送短信

使用SmsManager發送短信java.lang.Object ?android.telephony.SmsManagerManages SMS operations such as sending data, text, and pdu SMS messages. Get this object by calling the static method SmsManager.getDefault().管理短信操作,如發送數據&#xff…

Python運行環境與異常處理

Python的命令格式: python [option] ... [-c cmd | -m mod | file | -] [arg] ... 選項描述-J 啟動將從Python3中刪除或更改某些功能的警告 -B阻止在導入時創建.pyc或.pyo文件-E忽略環境變量-h打印所有可用命令行選項的列表-i在程序執行后進入交互模式-m module以腳…

Java應用一般架構

原文鏈接:http://www.iteye.com/news/31115 當我們架設一個系統的時候通常需要考慮到如何與其他系統交互,所以我們首先需要知道各種系統之間是如何交互的,使用何種技術實現。 1. 不同系統不同語言之間的交互 現在我們常見的不同系統不同語…

Mac MongoDB未正常關閉導致重啟失敗

你可以刪除掉mongod.lock文件,然后重新啟動,如果還是不可以,你可以查看一下進程,然后殺掉: ps -aef | grep mongo sudo kill 1076 再重啟數據庫即可。

微信企業號讓IOS不要識別數字為電話號碼的方法

最近在開發一個聯系人查看功能時,發現IOS端把 8位,11位的數字識別為了 電話號碼。 本來是黑色的樣式,變成了藍色的樣式,還添加了下劃線。點擊一下,還可以撥打電話。 這個問題要改,解決方法很簡單&#xf…

powerdns與nginx結合實現以域名和IP方式訪問web服務器80端口時分別跳轉到不同頁面...

1.powerdns設置 2.內部網站介紹 web服務器采用nginx,內網dns采用powerdns. 想實現的功能如下 通過ip訪問時跳轉到A頁面,通過域名訪問時,讓其跳轉到B頁面。兩種方式的端口均為80. 頁面A對應的nginx配置 server { listen 80; …

Installation error code: -103簽名不一致錯誤

調用Android系統的PackageInstallerActivity進行app安裝時,報Installation error code: -103 錯誤。 原因是:簽名問題。 可能是 1、正安裝的應用沒用簽名 2、正安裝的應用與已安裝的應用包相同,但簽名不同。 解決方法: 1、給…

java代碼塊是對象嗎_面向對象(Java中普通代碼塊,構造代碼塊,靜態代碼塊區別及代碼示例)...

//靜態代碼塊:在java中使用static關鍵字聲明的代碼塊。靜態塊用于初始化類,為類的屬性初始化。每個靜態代碼塊只會執行一次。由于JVM在加載類時會執行靜態代碼塊,所以靜態代碼塊先于主方法執行。//如果類中包含多個靜態代碼塊,那么將按照&quo…

Android adb命令選擇設備操作

當開了多個模擬器時,安裝app需要指定虛擬機,否則會提示:error: more than one device and emulator 1、先adb devices 查看設備列表 List of devices attached emulator-5554 device emulator-5556 device 2、使用命令 adb -s emulat…

java 視圖解析器_SpringMVC——視圖和視圖解析器

請求處理方法執行完成后,最終返回一個 ModelAndView對象。對于那些返回 String,View 或 ModeMap 等類型的處理方法,Spring MVC 也會在內部將它們裝配成一個ModelAndView 對象,它包含了邏輯名和模型對象的視圖Spring MVC 借助視圖解…

Android app 應用簽名

為什么要簽名? 這個要從Android的系統設計來解釋。 ---Android系統中的每個應用都是一個用戶,應用的包名(清單文件中 package的值)就是用戶名。 當一個已安裝的應用A和一個正要安裝的應用B,它們的包名相同&#xff…

[.Net線程處理系列]專題五:線程同步——事件構造

引言: 其實這部分內容應該是屬于專題四,因為這篇也是講關于線程同步的,但是由于考慮到用戶的閱讀習慣問題,因為文章太長了,很多人不是很愿意看包括我也是這樣的,同時也有和我說可以把代碼弄成折疊的&#x…

java redis set list_RedisTemplate的各種操作(set、hash、list、string)_lichuangcsdn的博客-CSDN博客...

注入以下RedisTemplateAutowiredprivate RedisTemplate redisTemplate;1、保存和讀取Set:代碼示例:SetOperations set redisTemplate.opsForSet(); set.add("set1","22"); set.add("set1","33"); set.add(&quo…

閃屏頁面(Splash)開發

業余作品--365安全衛士 ------------------------------------------- 閃屏頁面(Splash):app剛啟動時的頁面 作用: 1、展示公司品牌logo 2、應用初始化。如游戲app第一次啟動初始化數據 3、檢測新版本。 4、檢測程序合法性。如 招商銀行app在啟動…

matlab2016b ubuntu命令行安裝 + matconvnet的安裝

0. 下載安裝包 下載的文件有Matlab 2016b Linux64 Crack.rar,R2016b_glnxa64_dvd2.iso,R2016b_glnxa64_dvd1.iso。 1. 拷貝安裝文件并上傳服務器 在Windows下用虛擬光驅打開,并將R2016b_glnxa64_dvd1.iso和R2016b_glnxa64_dvd2.iso所有內容復…

科普dip,dp,sp,dpi,ppi,px,Density

一、概念 DPI:DPI是Dots Per Inch的縮寫,也就是“每英寸點數”,打印機分辨率。這里所說的“點”,在屏幕上并不是不變的,并不是唯一對應屏幕上的像素點,而是受到分辨率等因素的影響。這個點有可能是1個像素…

do與mysql數據類型對照_dophon-db: dophon框架的數據庫模塊,支持mysql,sqlite數據庫,帶有orm持久化功能與鏈式操作實例,貼近邏輯習慣,支持mysql多數據源配置...

dophon-db項目介紹dophon框架的數據庫模塊,也可單獨作為一個與數據庫模塊交互的部件支持mysql數據庫連接支持orm形式的數據操作如有疑問請發送郵件聯系作者:ealohu163.com軟件架構模塊架構分為以組件:mysql連接組件(包括連接池,連接封裝類,分頁,結果輸出過濾器,遠程接收器,增量…