querydsl,将null值设置为列会导致NullPointerException

时间:2015-11-17 09:34:17

标签: java exception null querydsl

我第一次在stackoverflow上发帖,但我真的需要一些帮助。

我不使用类生成来映射我的实体。我正在使用queryDSL版本4.0.5

这是我的代码:

    SQLTemplates templates = MySQLTemplates.builder().printSchema().build();
    Configuration configuration = new Configuration( templates );

    try
    {
        Class.forName( "com.mysql.jdbc.Driver" );

        final Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test", "root", "" );

        SQLQuery sqlQuery = new SQLQuery( connection, configuration );

        // querying
        NumberPath< Long > volume = Expressions.numberPath( Long.class, "volume" );

        RelationalPathBase< Object > r = new RelationalPathBase< Object >( Object.class, "", "test", "mstf" );

        Provider< java.sql.Connection > provinv = new Provider< Connection >()
        {

            @Override
            public Connection get()
            {
                return connection;
            }
        };

        SQLQueryFactory queryFactory = new SQLQueryFactory( configuration, provinv );

        queryFactory.update( r ).setNull( volume ).execute();

    }
    catch( Exception e )
    {
        e.printStackTrace();
    }

执行时,由于ColumnMetadata类中的代码,我得到了一个很棒的NullPointerException:

public int getJdbcType() {
    return jdbcType;
}

当然我们有一个INTEGER类型的jdbcType,它是null,我们必须返回一个int ...

知道如何在我的列中放置空数据吗? 非常感谢!!

0 个答案:

没有答案