hibernate 帶下標值的列舉型別的對映

2021-09-01 16:26:00 字數 2006 閱讀 6211

1 對於普通的列舉值對映 可以使用註解@enumerated即可

2 當要使用帶有下標值的列舉型別時,可以通過註解@type指定;不過在@type註解中,要指定具體的型別;此型別要繼承hibernate提供的usertype介面,相當於自定義一種型別。 實現usertype介面中的方法,此方法可以幫助hibernate在儲存物件屬性為列舉時,把列舉值轉換成對應的值持久化到資料庫。並且在查詢物件屬性為列舉值,如何把資料庫中的值展現成列舉值。

3 提供**例子

列舉類public enum usertype

private int value;

public int getvalue()

public static usertype valueof(int value)

}throw new operatefailexception("列舉類不支援數字:" + value);

}public static usertype nameof(string name)

}throw new operatefailexception("列舉類不支援字面值:" + name);}}

抽象類繼承usertype介面

public abstract class integereumuusertype> implements

usertype, serializable ;

classclazz = null;

@suppresswarnings(value="unchecked")

integereumuusertype()

public object assemble(serializable arg0, object arg1)

throws hibernateexception

public object deepcopy(object x) throws hibernateexception

public serializable disassemble(object arg0) throws hibernateexception

public boolean equals(object x, object y) throws hibernateexception else

}return false;

}public int hashcode(object arg0) throws hibernateexception

public boolean ismutable()

public object nullsafeget(resultset rs, string names, object value)

throws hibernateexception, sqlexception

return t;

}@suppresswarnings(value="unchecked")

public void nullsafeset(preparedstatement preparedstatement, object value, int index)

throws hibernateexception, sqlexception else

}public object replace(object original, object target, object owner)

throws hibernateexception

public classreturnedclass()

public int sqltypes()

public abstract int index(t t);

public abstract t indexof(int index);

}當使用具體的列舉型別,只需要建立對應的type即可

public class usertypeusertype extends integereumuusertype

@override

public usertype indexof(int index)

}

陣列中和為目標值的兩數的下標

題目描述 給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 返回 0,1 思路1 第一層for迴圈從索引0到倒數第二個索引拿到每個陣列元素,第二個for迴圈遍歷上一層f...

二分查詢 目標值的最小下標和目標值的最大下標

1.我們使用的退出迴圈的條件為l r 2.找到目標值的最小下標,將大於和等於合併成為一種情況 a mid target,答案的下標存在與l 如果只有乙個target值的話,l存的就是唯一target值的下標 3.找到目標值的最大下標,將小於和等於合併成為一種情況 a mid target,答案的下標...

使用列舉型別的值建立列舉型別

列舉型別中不僅可以宣告列舉的名稱,還可以加入附加的值如下式 public static enum pushtype public string tostring 其中push type sys稱為列舉的name,0則為列舉型別的value,那如何才能根據列舉型別的value獲取列舉型別的例項呢?見下...