{"record":{"id":"7e8715614ffc0468","repo":"hibernate/hibernate-orm","slug":"illegal-unit-unit","errorCode":null,"errorMessage":"illegal unit: {unit}","messagePattern":"illegal unit: (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java","lineNumber":6181,"sourceCode":"\t * {@link TemporalUnit#NANOSECOND},\n\t * {@link TemporalUnit#NATIVE},\n\t * {@link TemporalUnit#OFFSET},\n\t * {@link TemporalUnit#DAY_OF_WEEK},\n\t * {@link TemporalUnit#DAY_OF_MONTH},\n\t * {@link TemporalUnit#DAY_OF_YEAR},\n\t * {@link TemporalUnit#DATE},\n\t * {@link TemporalUnit#TIME},\n\t * {@link TemporalUnit#TIMEZONE_HOUR},\n\t * {@link TemporalUnit#TIMEZONE_MINUTE},\n\t * {@link TemporalUnit#WEEK_OF_YEAR}, nor\n\t * {@link TemporalUnit#WEEK_OF_MONTH},\n\t * which are not units of duration.\n\t */\n\tpublic String translateDurationField(TemporalUnit unit) {\n\t\treturn switch (unit) {\n\t\t\tcase NATIVE -> \"nanosecond\"; // default to nanosecond for now\n\t\t\tcase DAY_OF_MONTH, DAY_OF_YEAR, DAY_OF_WEEK, WEEK_OF_MONTH, WEEK_OF_YEAR, OFFSET, TIMEZONE_HOUR, TIMEZONE_MINUTE, DATE, TIME ->\n\t\t\t\t\tthrow new IllegalArgumentException( \"illegal unit: \" + unit );\n\t\t\tdefault -> unit.toString();\n\t\t};\n\t}\n\n\t/**\n\t * Append a datetime literal representing the given {@link java.time}\n\t * value to the given {@link SqlAppender}.\n\t */\n\tpublic void appendDateTimeLiteral(\n\t\t\tSqlAppender appender,\n\t\t\tTemporalAccessor temporalAccessor,\n\t\t\t@SuppressWarnings(\"deprecation\")\n\t\t\tTemporalType precision,\n\t\t\tTimeZone jdbcTimeZone) {\n\t\tswitch ( precision ) {\n\t\t\tcase DATE:\n\t\t\t\tappender.appendSql( JDBC_ESCAPE_START_DATE );\n\t\t\t\tappendAsDate( appender, temporalAccessor );","sourceCodeStart":6163,"sourceCodeEnd":6199,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java#L6163-L6199","documentation":"Error \"illegal unit: {unit}\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Triggered when the application calls a Hibernate dialect feature that the configured database dialect cannot provide: illegal unit: the given unit.","commonSituations":"Common when running against a database whose dialect lacks this capability, when a mapping or HQL/Criteria query requests unsupported functionality, or when the wrong dialect is configured for the database in use. Error: illegal unit: the given unit.","solutions":["Use a supported TemporalUnit (SECOND, MINUTE, HOUR, DAY, etc.).","Check the unit name for typos."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}