Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 确定值是否可用于jOOQ中的字段/数据类型_Java_Sql_Jooq - Fatal编程技术网

Java 确定值是否可用于jOOQ中的字段/数据类型

Java 确定值是否可用于jOOQ中的字段/数据类型,java,sql,jooq,Java,Sql,Jooq,在jOOQ中,是否有任何方法可以确定值是否可用于字段/数据类型 e、 g: 字段f=; 断言f.接受(“”); 断言f.接受(“a”); 断言f.接受(“ab”); 断言!f、 接受(“abc”); 断言!f、 接受(空); 断言!f、 接受(); 字段g=; 断言g.accepts(null); 断言g.accepts(0); 断言g.1(1); 断言!g、 接受(“”); 断言!g、 接受(“a”); 断言!g、 接受(-1); 断言!g、 接受(999999); 如果存在类似的情况,它是

在jOOQ中,是否有任何方法可以确定值是否可用于字段/数据类型

e、 g:

字段f=;
断言f.接受(“”);
断言f.接受(“a”);
断言f.接受(“ab”);
断言!f、 接受(“abc”);
断言!f、 接受(空);
断言!f、 接受();
字段g=;
断言g.accepts(null);
断言g.accepts(0);
断言g.1(1);
断言!g、 接受(“”);
断言!g、 接受(“a”);
断言!g、 接受(-1);
断言!g、 接受(999999);
如果存在类似的情况,它是严格的还是转换的

e、 g:

  • 如果严格,则
    varchar(2)
    列将不接受
    整数
    1
    ,而是接受
    字符串
    “1”

  • 如果转换,则
    varchar(2)
    列将接受
    整数
    1

另外,如果字段不能接受值,
UpdateSetStep#set(字段,T值)
(和类似的方法)是否可能引发异常?(出于任何原因,如可空性、数据类型、长度、精度、比例等)

在jOOQ中,是否有任何方法可以确定值是否可用于字段/数据类型

截至jOOQ 3.6,不存在此类功能。现在有一个新的功能请求:

此外,如果字段不能接受该值,则(和类似的方法)是否可能引发异常

您将无法覆盖
set()
的行为。但是,您可以将自己的数据类型
绑定
实现添加到所有数据类型,并在将变量绑定到底层JDBC语句时实现验证

有关数据类型绑定的详细信息,请参阅:

为了记录在案,此问题也已发布到
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);