#scala #compiler-errors #jooq
Вопрос:
Я использую jooq 3.11.9 и у меня есть две таблицы в БД: Развертывание решений и запись решений. Генерация кода прошла успешно, но компиляция не удалась:
[ERROR] /Users/.../src/main/scala-generated/com/backend/db/generated/Keys.scala:150: type mismatch;
found : com.backend.db.generated.tables.SolutionDeployment
required: org.jooq.Table[com.backend.db.generated.tables.records.SolutionDeploymentRecord]
[ERROR] /Users/.../src/main/scala-generated/com/backend/db/generated/Keys.scala:174: overloaded method value createUniqueKey with alternatives:
[R <: org.jooq.Record](x$1: org.jooq.Table[R], x$2: String, x$3: org.jooq.TableField[R, _]*)org.jooq.UniqueKey[R] <and>
[R <: org.jooq.Record](x$1: org.jooq.Table[R], x$2: org.jooq.TableField[R, _]*)org.jooq.UniqueKey[R]
cannot be applied to (com.backend.db.generated.tables.SolutionDeployment, String, org.jooq.TableField[com.backend.db.generated.tables.SolutionDeploymentRecord,Integer])
Ключи.часть импорта scala похожа на:
import com.backend.db.generated.tables.records.SolutionDeploymentRecord
import com.backend.db.generated.tables.records.SolutionDeploymentRecordRecord
import com.backend.db.generated.tables.SolutionDeployment
Ключи.scala:150 и 151 похожи:
val IDENTITY_SOLUTION_DEPLOYMENT : Identity[SolutionDeploymentRecord, Integer] = Internal.createIdentity(SolutionDeployment.SOLUTION_DEPLOYMENT, SolutionDeployment.SOLUTION_DEPLOYMENT.ID)
val IDENTITY_SOLUTION_DEPLOYMENT_RECORD : Identity[SolutionDeploymentRecordRecord, Integer] = Internal.createIdentity(com.backend.db.generated.tables.SolutionDeploymentRecord.SOLUTION_DEPLOYMENT_RECORD, com.backend.db.generated.tables.SolutionDeploymentRecord.SOLUTION_DEPLOYMENT_RECORD.ID)
Ключи.scala:174 и 175 похожи:
val SOLUTION_DEPLOYMENT_PKEY : UniqueKey[SolutionDeploymentRecord] = Internal.createUniqueKey(SolutionDeployment.SOLUTION_DEPLOYMENT, "solution_deployment_pkey", SolutionDeployment.SOLUTION_DEPLOYMENT.ID)
val SOLUTION_DEPLOYMENT_RECORD_PKEY : UniqueKey[SolutionDeploymentRecordRecord] = Internal.createUniqueKey(com.backend.db.generated.tables.SolutionDeploymentRecord.SOLUTION_DEPLOYMENT_RECORD, "solution_deployment_record_pkey", com.backend.db.generated.tables.SolutionDeploymentRecord.SOLUTION_DEPLOYMENT_RECORD.ID)
По-видимому, это вызвано именем таблицы «Solution-Ploymentrecord», потому что, если я изменю суффикс «Запись» на что-то другое, все вернется в нормальное состояние. Но по сравнению с сгенерированным кодом других таблиц в коде этой таблицы не должно быть ошибок компиляции.
В чем основная причина этой проблемы? Если это действительно проблема с именем, существует ли соглашение об именах для справки?
Спасибо!
Комментарии:
1. В генераторе кода было реализовано множество исправлений, в том числе для
ScalaGenerator
. Не могли бы вы, пожалуйста, повторить попытку с последней версией jOOQ