如何排除由hibernate导致SQLException的脏数据

时间:2015-12-04 04:12:16

标签: java mysql sql hibernate

请找到以下映射xml,

<class name="com.fabulous.A" table="f_a">
    <id name="id" column="id">
        <generator class="assigned" />
    </id>
    <property name="startTime" column="start_time" />
</class>

我按批次查询表f_a,如下所示,批量大小为100:

"FROM A WHERE id IN (:ids)"

然而表f_a中有一个脏行会导致SQLException ,整个批处理将无法获取。

我只有select权限,无法从DB中删除脏数据,是否有任何方法可以通过hibernate自动排除脏数据

是的,如果按ID逐个查询,我可以从我的应用程序中进行查询,但效率低且无法使用。

有人可以帮忙吗? 脏数据的时间戳值为&#34; 0000:00:00&#34;。

感谢。

2 个答案:

答案 0 :(得分:0)

添加选项<property name="hibernate.connection.zeroDateTimeBehavior">convertToNull</property&gt;

hibernate.cfg.xml:

hibernate.properties

hibernate.connection.zeroDateTimeBehavior=convertToNull

答案 1 :(得分:0)

我通过在jdbcUrl上添加?zeroDateTimeBehavior=convertToNull来修复它。

您可以在下面找到我的jdbcUrl

<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/testdb?zeroDateTimeBehavior=convertToNull" />