日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 实体类规范_实体类的规范

發布時間:2025/3/11 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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);

}

}

總結

以上是生活随笔為你收集整理的java 实体类规范_实体类的规范的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。