1
javaを使用してSQL文を作成しようとしています。問題は、私は、私はそれが私にPostgreSQLヒント:式を書き換えたり、キャストしたりする必要があります。 "state"列はstatus型ですが、式は可変文字型です
column "state" is of type status but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
の例外がスローされ
CREATE TYPE STATUS AS ENUM ('APPROVED', 'CLOSED','STARTED', 'WAITING');
タイプの状態のSQL列に挿入しようとしている変数の
stmt.setString(9, ev.getState().status());
を使用していますされませんでした私は間違いを犯すか、実際にはSQLの値をキャストする必要がありますか?はいの場合、この状況でどのようにキャストするのですか?
完全な声明:
PreparedStatement stmt = conn.prepareStatement("INSERT INTO Event (EventNum, EventName, startHour, endHour, startMin, endMin, startDate, endDate, State, depName) VALUES (?, ?, ?, ?, ?, ?, ?::date, ?::date, ?, ?)");
stmt.setInt(1, ev.getEventNum());
stmt.setString(2, ev.getName());
stmt.setInt(3, ev.getStartHour());
stmt.setInt(4, ev.getEndHour());
stmt.setInt(5, ev.getStartMinute());
stmt.setInt(6, ev.getEndMinute());
stmt.setString(7, ev.getStartYear() + "-" + ev.getStartMonth() + "-" + ev.getStartDate());
stmt.setString(8, ev.getEndYear() + "-" + ev.getEndMonth() + "-" + ev.getEndDate());
stmt.setString(9, ev.getState().status());
stmt.setString(10, ev.getDepartment());
stmt.executeUpdate();