Я использую среду dropwizard для создания RESTful API. То, что я не могу заставить работать - это привязать Optional<Value>
к моему SQL-выражению.
Я также хотел бы иметь возможность привязывать объект напрямую, вместо того, чтобы передавать параметры один за другим, но я не могу понять, как это сделать. Это может иметь аналогичное или такое же решение.
@SqlUpdate("INSERT INTO TASKS (project_id, creator_id, stage, title, description, created_at, priority) VALUES (:projectId, :creatorId, :stage, :title, :desc, :createdAt, :priority)")
int insertTask(
@Bind("projectId") int projectId,
@Bind("creatorId") int creatorId,
@Bind("stage") String stage,
@Bind("title") String title,
@Bind("desc") String description,
@Bind("user") int userId,
@Bind("createdAt") Timestamp createdAt,
@Bind("priority") Optional<Priority> priority
);
Исходя из моей отладки, это ошибка. priority:Optional[LOW]
вместо priority:"LOW"
UnableToCreateStatementException: Exception while binding 'priority'
[
statement: "UPDATE TASKS SET project_id = :projectId, stage = :stage, title = :title, description = :desc, priority = :priority WHERE task_id = :taskId",
located: "UPDATE TASKS SET project_id = :projectId, stage = :stage, title = :title, description = :desc, priority = :priority WHERE task_id = :taskId",
rewritten: "/* TasksDAO.updateTask */ UPDATE TASKS SET project_id = ?, stage = ?, title = ?, description = ?, priority = ? WHERE task_id = ?",
arguments: { positional:{}, named:{stage:'In Progress',title:'Test Task 1',priority:Optional[LOW],projectId:1,taskId:1,desc:'This is the first'},finder:[]}
]