Lok*_*oke 8 java mysql null enums hibernate
我正在使用带有Hibernate的MySQL数据库,并且某些Enum字段允许NULL或空值.在进行查询并且Hibernate尝试映射Enum定义的空值之前,一切正常.我无法在枚举中定义一个可行的值,因为Enum允许使用空格.
枚举类:
private enum ObjType {
itemA,
itemB,
NULL
}
Run Code Online (Sandbox Code Playgroud)
它需要NULL作为成员,但这没有帮助.我是EE Java的新手,非常感谢任何帮助.谢谢
您可以向枚举添加一个unknown或default或值,如果它是或,则该枚举将被映射invalidnullempty space
package com.test;
import java.util.HashMap;
public class Brand{
private static HashMap<String,BrandName> map = new HashMap<String,BrandName>();
public enum BrandName {
HERO("hero"),HONDA("honda"),UNKNOWN("default");
private String value = null;
private BrandName(String value){
this.value = value;
addToMap();
}
private void addToMap(){
map.put(this.value, this);
}
@Override
public String toString(){
return this.value;
}
public static BrandName fromValue(String value){
return map.get(value) != null ? map.get(value) : map.get("default");
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用fromValue方法,您可以从值获取枚举对象。使用toString方法您可以获得枚举对象的值。
map将包含枚举对象映射的值。如果映射中不存在类似null或 的值,则映射将返回 null,在这种情况下该方法将返回枚举对象。empty spacefromValueUNKNOWN
System.out.println(Brand.BrandName.HERO.toString());
System.out.println(Brand.BrandName.fromValue("").toString());
System.out.println(Brand.BrandName.fromValue(null).toString());
System.out.println(Brand.BrandName.fromValue("honda").toString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7110 次 |
| 最近记录: |