sqlの "データが切り捨てられました"という質問はスタックオーバーフローで非常に多いことがわかりました。しかし、私の質問は少し異なり、私はその答えを見つけることができません。Hibernate:主キー列でデータが切り捨てられました
私は更新ステートメントを実行しているときに主キーで切り捨てられています。
public void updateListData(String newId, String oldId) {
StringBuilder sql = new StringBuilder("UPDATE card_info c ");
sql.append("SET c.xxx_id = :newId ");
sql.append("WHERE c.xxx_id <> '' AND c.status = 1 AND c.is_private = 1 AND c.delete = 0 AND c.xxx_id = :oldId ");
Query query = getEntityManager().createNativeQuery(sql.toString());
query.setParameter("newId", newId);
query.setParameter("oldId", oldId);
query.executeUpdate();
}
マイログ:
WARN : org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1265, SQLState: 01000
ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - data truncated for primary key column: <card_id>
私はこのエラーを解決することはできません
My機能は、SQLを更新します。 私を助けてください。 ありがとうございます!
なぜこの部分を使用しますか?「where c.xxx_id <>」「AND」? – Daniyar
私はnullをチェックします。だから多分私はそのためnullではない使用します:) –
すべての更新クエリのこのエラーが表示されますか?エラーコードの説明によると、newIdがnullまたは ''のとき、または番号なしのfloat列を挿入/更新しようとしたときに発生します。 – Daniyar