Mapping 如何将整数数据库类型映射到java布尔值?

Mapping 如何将整数数据库类型映射到java布尔值?,mapping,jdo,datanucleus,Mapping,Jdo,Datanucleus,我已经在应用它了,它的工作原理就像来自数据库的整数值是0,java布尔变量变为false,反之亦然。但是我想知道是否有可能用另一种方法来映射0fortrue和1forfalse 这让我想到,我之前已经将javaenums映射为整数,这在文档中有很好的解释,我想知道Datanucleus是否足够灵活,可以在持久化值或加载值时将任何数据库类型映射为任何java类型。例如,将低于指定值的数据库映射为java booleanfalse并将超过该值的数据库映射为java booleantrue。或者将字符

我已经在应用它了,它的工作原理就像来自数据库的整数值是
0
,java布尔变量变为false,反之亦然。但是我想知道是否有可能用另一种方法来映射
0
for
true
1
for
false


这让我想到,我之前已经将java
enum
s映射为整数,这在文档中有很好的解释,我想知道Datanucleus是否足够灵活,可以在持久化值或加载值时将任何数据库类型映射为任何java类型。例如,将低于指定值的数据库映射为java boolean
false
并将超过该值的数据库映射为java boolean
true
。或者将字符串映射到整数(字符串长度可能是)。

也许您只需使用标准JDO元数据并定义“jdbc类型”,然后看看会发生什么。我不认为支持每一种可能的组合都是可行的(事实上,它们中的许多都是愚蠢的)。

我不需要使用
jdbc类型来启用
integer
boolean
映射。我只是希望反转\控制mapping.JDO spec p 224定义默认映射。如果不使用默认值,则必须指定jdbc-type。您的意思是,如果要将布尔java变量映射到mysql整数,则必须指定
jdbc-type
?因为事实并非如此。实际上,我没有指定
jdbc类型
。我正在将java布尔变量映射到
INT(11)
mysql类型。映射的mysql整数列值只能是
1
0
(由应用程序控制),我的意思是,如果使用默认数据库类型(根据JDO规范),则不需要指定jdbc类型,如果不使用,则必须指定jdbc类型