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

  • Post author:
  • Post category: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);

}

}



版权声明:本文为weixin_33128371原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。