2015-09-13 32 views
1

在JOOQ中,有什麼方法可以確定一個值是否可以用於字段/數據類型?確定一個值是否可以用於字段/數據類型在JOOQ中

例如爲:

Field f = <a non-nullable varchar(2)>; 

assert f.accepts(""); 
assert f.accepts("a"); 
assert f.accepts("ab"); 

assert ! f.accepts("abc"); 
assert ! f.accepts(null); 
assert ! f.accepts(); 

Field g = <a nullable unsigned byte>; 

assert g.accepts(null); 
assert g.accepts(0); 
assert g.accepts(1); 

assert ! g.accepts(""); 
assert ! g.accepts("a"); 
assert ! g.accepts(-1); 
assert ! g.accepts(999999); 

如果這樣的事情存在,是嚴格的,或轉換?

如:

  • 如果嚴格,一個varchar(2)列將不接受Integer1,但將接受String"1"

  • 如果轉換,一個varchar(2)列將接受Integer1

另外,UpdateSetStep#set(Field field, T value)(以及類似的方法)是否可以在字段無法接受值時拋出異常? (由於任何原因,如爲空,數據類型,長度,精度規模等)

+0

爲了記錄在案,這個問題也被張貼到[jOOQ用戶組(https://groups.google.com/forum/ #!話題/ jooq用戶/ RNwSKXT8Tts) –

回答

1

在jOOQ,是否有任何方法來確定是否一個值可以被用於一個字段/數據類型?

沒有這樣的特徵,如第3.6條。現在有一個新功能請求:#4543

此外,如果字段不能接受值,UpdateSetStep#set(Field field, T value)(和類似的方法)是否可能引發異常?

您將無法覆蓋set()的行爲。但是,您可以將自己的數據類型Binding實現添加到所有數據類型,並在將變量綁定到基礎JDBC語句時實現驗證。

有關數據類型綁定的詳細信息,請參閱:
http://www.jooq.org/doc/latest/manual/sql-building/queryparts/custom-bindings/

相關問題