{"record":{"id":"f2f0edad9c2c6a38","repo":"hibernate/hibernate-orm","slug":"session-was-created-in-read-only-mode","errorCode":null,"errorMessage":"Session was created in read-only mode","messagePattern":"Session was created in read-only mode","errorType":"exception","errorClass":"SessionException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java","lineNumber":1928,"sourceCode":"\t\treturn true;\n\t}\n\n\t@Override\n\t@Nonnull\n\tpublic EventSource asEventSource() {\n\t\treturn this;\n\t}\n\n\t@Override\n\tpublic boolean isDefaultReadOnly() {\n\t\treturn persistenceContext.isDefaultReadOnly();\n\t}\n\n\t@Override\n\tpublic void setDefaultReadOnly(boolean defaultReadOnly) {\n\t\tcheckSessionReentrancy();\n\t\tif ( !defaultReadOnly && isReadOnly() ) {\n\t\t\tthrow new SessionException( \"Session was created in read-only mode\" );\n\t\t}\n\t\tpersistenceContext.setDefaultReadOnly( defaultReadOnly );\n\t}\n\n\t@Override\n\tpublic boolean isReadOnly(@Nonnull Object entityOrProxy) {\n\t\tcheckOpen();\n//\t\tcheckTransactionSynchStatus();\n\t\treturn persistenceContext.isReadOnly( entityOrProxy );\n\t}\n\n\t@Override\n\tpublic void setReadOnly(@Nonnull Object entity,  boolean readOnly) {\n\t\tcheckOpen();\n//\t\tcheckTransactionSynchStatus();\n\t\tpersistenceContext.setReadOnly( entity, readOnly );\n\t}\n","sourceCodeStart":1910,"sourceCodeEnd":1946,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java#L1910-L1946","documentation":"Error \"Session was created in read-only mode\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown at hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java:1928 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Do not perform write operations on a read-only session; obtain a normal session for mutations.","If the read-only flag was set by a @Transactional(readOnly=true), open a non-read-only transaction for the write."],"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"}