0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

com.mysql.cj.jdbc.exceptions.MysqlDataTruncationが見つからずにHerokuでコンパイルエラーになった時の対処法

Posted at

事象

herokuにデプロイしようとしたら以下のようなエラーが出た。


remote:        > Task :compileJava FAILED
remote:        /tmp/build_286ffed9/src/main/java/com/example/webapp/service/impl/EmployeesManagementServiceImpl.java:25: error: package com.mysql.cj.jdbc.exceptions does not exist
remote:        import com.mysql.cj.jdbc.exceptions.MysqlDataTruncation;

以下のコードで使用しているMysqlDataTruncationが原因らしい。

@Override
	public void updateEmployee(EmployeeForm employeeForm) throws DuplicateEmployeeException, TooLongDataException {
		Employee employee = EmployeeHelper.convertEmployee(employeeForm);
		try {
			employeesManagementMapper.update(employee);
		} catch (DataIntegrityViolationException e) {
			if (e.getCause().getClass().equals(SQLIntegrityConstraintViolationException.class)) {
				throw new DuplicateEmployeeException("従業員名が重複しています");
			}
			if (e.getCause().getClass().equals(MysqlDataTruncation.class)) {
				throw new TooLongDataException(e.getCause().getMessage());
			}
		}
	}

「package com.mysql.cj.jdbc.exceptions does not exist」、つまりパッケージが存在していないということらしいのだが、普通にローカル環境ではコンパイルして起動できた。

原因

Heroku上にはMySQLのJDBC Driverが存在していないため。

対処

gradleの依存に以下を追加

implementation 'mysql:mysql-connector-java:8.0.33'

これでデプロイできた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?