Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e656488

Browse files
committedFeb 18, 2025·
Support for readonly in backend side
Fix jhipster#27048
1 parent 72930c4 commit e656488

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed
 

‎generators/spring-data-relational/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jakarta_persistence.ejs

+3-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ import org.hibernate.type.SqlTypes;
6363
<%_ } else if (fieldTypeUuidAndMysqlDbType) { _%>
6464
, length = 36
6565
<%_ } _%>
66-
6766
<%_ if (field.fieldValidate === true) { _%>
6867
<%_ if (field.fieldValidationMaxLength && !fieldTypeUuidAndMysqlDbType) { _%>
6968
, length = <%= field.fieldValidateRulesMaxlength %>
@@ -75,6 +74,9 @@ import org.hibernate.type.SqlTypes;
7574
, unique = true
7675
<%_ } _%>
7776
<%_ } _%>
77+
<%_ if (field.readonly && !(field.id && field.autoGenerate)) { _%>
78+
, insertable = false, updatable = false
79+
<%_ } _%>
7880
)
7981
8082
<&_ } -&>

‎test-integration/samples/.jhipster/FieldTestEntity.json

+18
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
{ "fieldName": "stringRequiredTom", "fieldType": "String", "fieldValidateRules": ["required"] },
77
{ "fieldName": "stringMinlengthTom", "fieldType": "String", "fieldValidateRules": ["minlength"], "fieldValidateRulesMinlength": 0 },
88
{ "fieldName": "stringMaxlengthTom", "fieldType": "String", "fieldValidateRules": ["maxlength"], "fieldValidateRulesMaxlength": 20 },
9+
{ "fieldName": "stringReadonly", "fieldType": "String", "options": { "readonly": true } },
910
{
1011
"fieldName": "stringPatternTom",
1112
"fieldType": "String",
@@ -26,32 +27,49 @@
2627
"fieldValidateRulesPattern": "^\\d+$"
2728
},
2829
{ "fieldName": "integerTom", "fieldType": "Integer" },
30+
{ "fieldName": "integerReadonly", "fieldType": "Integer", "options": { "readonly": true } },
2931
{ "fieldName": "integerRequiredTom", "fieldType": "Integer", "fieldValidateRules": ["required"] },
3032
{ "fieldName": "integerMinTom", "fieldType": "Integer", "fieldValidateRules": ["min"], "fieldValidateRulesMin": 0 },
3133
{ "fieldName": "integerMaxTom", "fieldType": "Integer", "fieldValidateRules": ["max"], "fieldValidateRulesMax": 100 },
3234
{ "fieldName": "longTom", "fieldType": "Long" },
35+
{ "fieldName": "longReadonly", "fieldType": "Long", "options": { "readonly": true } },
3336
{ "fieldName": "longRequiredTom", "fieldType": "Long", "fieldValidateRules": ["required"] },
3437
{ "fieldName": "longMinTom", "fieldType": "Long", "fieldValidateRules": ["min"], "fieldValidateRulesMin": 0 },
3538
{ "fieldName": "longMaxTom", "fieldType": "Long", "fieldValidateRules": ["max"], "fieldValidateRulesMax": 100 },
3639
{ "fieldName": "floatTom", "fieldType": "Float" },
40+
{ "fieldName": "floatReadonly", "fieldType": "Float", "options": { "readonly": true } },
3741
{ "fieldName": "floatRequiredTom", "fieldType": "Float", "fieldValidateRules": ["required"] },
3842
{ "fieldName": "floatMinTom", "fieldType": "Float", "fieldValidateRules": ["min"], "fieldValidateRulesMin": 0 },
3943
{ "fieldName": "floatMaxTom", "fieldType": "Float", "fieldValidateRules": ["max"], "fieldValidateRulesMax": 100 },
4044
{ "fieldName": "doubleRequiredTom", "fieldType": "Double", "fieldValidateRules": ["required"] },
45+
{ "fieldName": "doubleReadonly", "fieldType": "Double", "options": { "readonly": true } },
4146
{ "fieldName": "doubleMinTom", "fieldType": "Double", "fieldValidateRules": ["min"], "fieldValidateRulesMin": 0 },
4247
{ "fieldName": "doubleMaxTom", "fieldType": "Double", "fieldValidateRules": ["max"], "fieldValidateRulesMax": 100 },
4348
{ "fieldName": "bigDecimalRequiredTom", "fieldType": "BigDecimal", "fieldValidateRules": ["required"] },
49+
{ "fieldName": "bigDecimalReadonly", "fieldType": "BigDecimal", "options": { "readonly": true } },
4450
{ "fieldName": "bigDecimalMinTom", "fieldType": "BigDecimal", "fieldValidateRules": ["min"], "fieldValidateRulesMin": 0 },
4551
{ "fieldName": "bigDecimalMaxTom", "fieldType": "BigDecimal", "fieldValidateRules": ["max"], "fieldValidateRulesMax": 100 },
4652
{ "fieldName": "localDateTom", "fieldType": "LocalDate" },
53+
{ "fieldName": "localDateReadonly", "fieldType": "LocalDate", "options": { "readonly": true } },
4754
{ "fieldName": "localDateRequiredTom", "fieldType": "LocalDate", "fieldValidateRules": ["required"] },
4855
{ "fieldName": "instantTom", "fieldType": "Instant" },
56+
{
57+
"fieldName": "instantReadonly",
58+
"fieldType": "Instant",
59+
"options": { "defaultValue": "2024-08-09 12:30:45.123456", "readonly": true }
60+
},
4961
{ "fieldName": "instantRequiredTom", "fieldType": "Instant", "fieldValidateRules": ["required"] },
5062
{ "fieldName": "zonedDateTimeTom", "fieldType": "ZonedDateTime" },
63+
{
64+
"fieldName": "zonedDateTimeReadonly",
65+
"fieldType": "ZonedDateTime",
66+
"options": { "defaultValue": "2024-08-09 12:30:45.123456", "readonly": true }
67+
},
5168
{ "fieldName": "zonedDateTimeRequiredTom", "fieldType": "ZonedDateTime", "fieldValidateRules": ["required"] },
5269
{ "fieldName": "durationTom", "fieldType": "Duration" },
5370
{ "fieldName": "durationRequiredTom", "fieldType": "Duration", "fieldValidateRules": ["required"] },
5471
{ "fieldName": "booleanTom", "fieldType": "Boolean" },
72+
{ "fieldName": "booleanReadonly", "fieldType": "Boolean", "options": { "readonly": true } },
5573
{ "fieldName": "booleanRequiredTom", "fieldType": "Boolean", "fieldValidateRules": ["required"] },
5674
{ "fieldName": "enumTom", "fieldType": "EnumFieldClass", "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3" },
5775
{

0 commit comments

Comments
 (0)
Please sign in to comment.