Gavin King
1e0e0ac02b
HHH-18023 fix wrong test assertions
...
OPTIMISTIC means the version gets checked at end of tx,
this lock mode is never acquired implicitly
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-28 20:37:18 +02:00
Gavin King
1657702015
HHH-18024 fix getLockMode() on read-only entity
...
it resulted in spurious exception claiming entity was deleted
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-28 20:37:18 +02:00
Gavin King
789cc12b8e
HHH-18023 fix bugs with versioned LockModes
...
- NPE at commit time for OPTIMISTIC on entity with no version
- LockMode.OPTIMISTIC treated as equivalent to LockModeType.OPTIMISTIC
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-28 20:37:18 +02:00
Gavin King
39a6f9880b
clean up CacheModeHelper
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-28 20:37:18 +02:00
Gavin King
60a732152f
clean an unused import
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-27 01:29:56 +02:00
Jan Schatteman
1b057b8f1f
HHH-17967 - Add test for issue (already fixed on main, fails pre-6.5)
...
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2024-04-25 16:39:21 +02:00
Andrea Boriero
2202487633
HHH-17964 Hibernate using wrong column order for ElementCollection query when composite ID is present
2024-04-25 09:59:13 +02:00
Andrea Boriero
a1739979d1
HHH-17964 Add test for issue
2024-04-25 09:59:13 +02:00
Gavin King
b102a6e2c9
slightly improve format of error message
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-24 22:41:02 +02:00
Marco Belladelli
181399f84c
HHH-17983 Remove entity keys from batch queue before loading
2024-04-24 11:37:53 +02:00
Marco Belladelli
882709bdf8
HHH-17983 Add test for issue
2024-04-24 11:37:53 +02:00
Marco Belladelli
ce56234857
HHH-17883 Correct original column order for primary keys
2024-04-24 11:36:46 +02:00
Marco Belladelli
0c8bfefd1c
HHH-17883 Add test for issue
2024-04-24 11:36:46 +02:00
Christian Beikov
bda95dfbe7
Fix HANA dialect doesRoundTemporalOnOverflow
2024-04-23 17:59:12 +02:00
Christian Beikov
969ecaae58
Fix SybaseASEDialect column length resolution
2024-04-23 17:08:18 +02:00
Marco Belladelli
7adab31924
HHH-17818 Add a UG paragraph and examples for `@ConcreteProxy`
2024-04-23 15:37:22 +02:00
Marco Belladelli
84cb94b990
HHH-17818 Introduce new `@ConcreteProxy` annotation
...
Also, preserve laziness for optional + ConcreteType associations
2024-04-23 15:37:22 +02:00
Gavin King
2bc78d50b0
HHH-17999 use Supplier instead of Constructor
...
this is quite a lot cleaner
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-23 15:28:38 +02:00
Gavin King
0468e04955
HHH-17999 use Constructor<Expectation> instead of Class<Expectation>
...
for Quarkus
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-23 15:28:38 +02:00
Andrea Boriero
42cbbc3a0c
HHH-17965 @ElementCollection with @CollectionTable throws o.h.MappingException Foreign key must have same number of columns as the referenced primary key
2024-04-23 13:51:10 +02:00
Andrea Boriero
a3690b1e68
HHH-17965 Add test for issue
2024-04-23 13:51:10 +02:00
Sanne Grinovero
8f277d4b1c
HHH-17993 Metamodel processing on bootstrap: avoid retrying same metamodel class name multiple times
2024-04-22 21:26:33 +01:00
Sanne Grinovero
4c3f8a625d
HHH-17991 Reduce overhead from @DialectOverride discovery
2024-04-22 13:28:56 +01:00
Gavin King
c71967d6c1
code cleanups to EnhancementAsProxyLazinessInterceptor
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-22 13:08:02 +02:00
Gavin King
caab8a97fc
squash jdoc warnings
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-22 13:08:02 +02:00
Gavin King
8df8fd37be
HHH-17984 StatelessSession statistics for collections
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-22 13:08:02 +02:00
Gavin King
62132594eb
HHH-17984 initial support for Statistics with StatelessSession
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-22 13:08:02 +02:00
Gavin King
34fd71c131
HHH-14968 remove method with no callers
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-22 13:08:02 +02:00
Sanne Grinovero
c932da7890
HHH-17987 Improve allocation rate of ReflectHelper#setterMethodOrNull
2024-04-22 11:15:55 +01:00
Sanne Grinovero
beefee96b5
HHH-17988 MetadataContext should consistently use ClassLoaderService
2024-04-22 11:14:35 +01:00
Sanne Grinovero
e84370e063
HHH-17980 Excessive contention during getter identification in the ByteBuddy enhancer
2024-04-22 11:13:31 +01:00
Marco Belladelli
1fbed6598f
HHH-17916 Check type is resolved before building generic property
2024-04-19 12:40:42 +02:00
Marco Belladelli
9163d50603
HHH-17916 Add test for issue
2024-04-19 12:40:42 +02:00
Gavin King
aae9b1e55d
talk about lock() and refresh() in javadoc preamble for Session
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-18 10:53:58 +02:00
Gavin King
38c56acd0b
two minor improvements to javadoc
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-18 10:53:58 +02:00
Gavin King
810e5fc76d
make javadoc consistent
...
yes, these methods actually do still accept detached objects
as of today, but that's already deprecated and we're going to
turn it off in the future
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-17 19:28:53 +02:00
Yanming Zhou
8fdf86e8a5
HHH-17951 Deprecate unused Size.LobMultiplier
2024-04-17 18:36:04 +02:00
Gavin King
eb760db015
HHH-17969 test for issue
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-17 16:15:28 +02:00
Gavin King
5b28d1562e
add an example to jdoc of SS.fetch()
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-17 13:49:24 +02:00
Gavin King
23163919f8
fix an NPE that occurred if a QL 'delete' statement had no predicate ( #8190 )
...
(bug exposed by Jakarta Data TCK)
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-17 02:35:27 +02:00
Gavin King
7e108433ea
HHH-17966 EAGER collections in StatelessSession ( #8186 )
2024-04-16 12:36:29 +02:00
Gavin King
1c71bb67f1
HHH-17955 rename some Interceptor callback methods
...
to better reflect their nature, and reduce confusion with
the new callbacks introduced for use with StatelessSession
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-15 21:21:26 +02:00
Gavin King
65a8ffdf0e
HHH-17955 Javadoc improvements in StatelessSession
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-15 21:21:26 +02:00
Gavin King
dd77ef651a
HHH-17955 add Interceptor callbacks for StatelessSession
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-15 21:21:26 +02:00
Gavin King
9a4d21d71d
HHH-17955 Bean Validation and @PostXxxx callbacks for StatelessSession
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-15 21:21:26 +02:00
Gavin King
59603dffb3
clean up weird code formatting in test
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-15 21:21:26 +02:00
Gavin King
7f89c6260e
HHH-17954 initial implementation of collection persistence for StatelessSession
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-15 21:21:26 +02:00
Gavin King
6695617210
HHH-17953 fix StatelessSession.fetch() for empty collection
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-13 12:43:05 +02:00
Gavin King
c0d2075ee6
move broken jdoc back where it belongs
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-13 11:04:47 +02:00
Steve Ebersole
a996b6514e
HHH-17559 - Prefer Java Time handling for all temporal values
2024-04-12 13:08:57 -05:00
Andrea Boriero
add62a188b
Fix SybaseASEDialect column lenght resolution
2024-04-12 19:27:41 +02:00
Andrea Boriero
781b9f4653
HHH-17761 Merging a bytecode enhanced entity with all properties set to null does not apply the update
2024-04-12 11:52:08 -05:00
Andrea Boriero
181d1e1966
HHH-17761 Add test for issue
2024-04-12 11:52:08 -05:00
marko-bekhta
12c01df281
HHH-17761 Add a reproducer
2024-04-12 11:52:08 -05:00
Andrea Boriero
aa5e1184a5
Fix sybase LobSchemaUpdateTest failure
2024-04-12 11:46:07 -05:00
Steve Ebersole
f68f6aae50
HHH-17946 - Avoid creating ProxyFactory if possible
2024-04-12 11:22:16 -05:00
Marco Belladelli
44aec90538
HHH-17783 Allow early initialization of entity instance by non-owning initializer
2024-04-12 11:14:46 -05:00
gtoison
710ea629a9
HHH-17918 test reproducing the issue
2024-04-12 11:14:46 -05:00
Marco Belladelli
07692edf9a
HHH-17783 Add test for issue
2024-04-12 11:14:46 -05:00
Yanming Zhou
71234d90ae
HHH-17912 Disallow multiple valued binding for BasicCollectionType
2024-04-12 11:00:23 -05:00
Christian Beikov
b4603e0e40
HHH-17932 Get rid of unnecessary synchronization
2024-04-12 14:01:50 +02:00
Yanming Zhou
95403bc083
Use Integer.MAX_VALUE instead for better readability
2024-04-12 13:42:47 +02:00
Christian Beikov
62a973dce0
HHH-17947 Bidirectional association management shouldn't ignore maintaining inverse lazy objects
2024-04-12 13:28:21 +02:00
Christian Beikov
c624048635
HHH-17947 Add additional test for unique key loading
2024-04-12 13:28:21 +02:00
Jan Schatteman
68049bbf74
HHH-17947 - Add test for issue
...
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2024-04-12 13:28:21 +02:00
Gavin King
dd209f9851
add missing @since annotations
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-12 10:36:20 +02:00
Gavin King
0944b52bc3
add a missing @since annotation
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 23:59:54 +02:00
Andrea Boriero
f27dc7d3a8
Fix mssql LobSchemaUpdateTest failure
2024-04-11 22:40:12 +02:00
Gavin King
afc92451d9
HHH-17934 limit test to databases with proper MERGE support for now
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 16:52:30 +02:00
Gavin King
e620fbb892
HHH-17934 sort out version handling in upsert()
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 16:52:30 +02:00
Gavin King
17df9bedf5
HHH-17934 generate a correct SQL merge statement
...
(adds the version check if necessary)
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 16:52:30 +02:00
Gavin King
3fe1f58c93
HHH-17934 test demonstrating bug
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-11 16:52:30 +02:00
Marco Belladelli
bcbae00552
HHH-17832 Register projection usage for circular bidirectional fetch
2024-04-11 16:33:14 +02:00
Marco Belladelli
747a1024da
HHH-17832 Add test for issue
2024-04-11 16:33:14 +02:00
Yanming Zhou
d8df261847
Fix SqlTypes::isStringType
2024-04-11 13:48:06 +02:00
Yanming Zhou
fc7fc47b64
Add more type name alias mappings
...
1. MySQL returns `int` even `integer` is specified
2. H2 returns `character large object` and `binary large object` even `clob` and `blob` is specified
2024-04-11 13:47:03 +02:00
Mohammad Yasin Sadeghi
64e52022bc
correct a typo
2024-04-10 19:16:18 +02:00
Gavin King
0ea86a9d07
get rid of raw types and extract methods
...
eliminates compiler warnings
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-10 18:03:30 +02:00
Gavin King
97f96d841d
improve error message, as suggested by Yoann
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-10 18:03:30 +02:00
Christian Beikov
2343bfa513
Skip DB2 test on old DB2 versions
2024-04-10 16:24:44 +02:00
Yoann Rodière
56105a8fc6
HHH-17935 Do not use the "auto-enable" feature for the tenant ID filter
...
This filter already gets enabled automatically where relevant, and
critically it's not relevant when using a "root" tenant identifier.
2024-04-10 14:43:53 +02:00
Marco Belladelli
ce97a5da2c
HHH-10921 Add test for issue
2024-04-09 17:16:39 +02:00
Andrea Boriero
e95eaf6cb3
HHH-17887 Release mode After Statment with deferred result set access does not work
2024-04-09 07:46:52 +02:00
Andrea Boriero
189de9dab7
HHH-17887 Add test for issue
2024-04-09 07:46:52 +02:00
Gavin King
3fb0f83990
fix previous-page navigation with KeyedResultList
...
It was returning the results in reverse order.
This caused a failure in the Data TCK.
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-04-08 22:37:06 +02:00
Andrea Boriero
b5e78cf9d0
HHH-17826 ResultSet closed while scrolling results
2024-04-08 16:26:57 +02:00
Andrea Boriero
bd740f2dbf
HHH-17826 Add test for issue
2024-04-08 16:26:57 +02:00
Marco Belladelli
aa7575aabd
HHH-17857 Use `fromNameExact` when determining actual table group
2024-04-08 16:17:19 +02:00
Marco Belladelli
5c51ff93c6
HHH-17857 Add test for issue
2024-04-08 16:17:19 +02:00
Christian Beikov
bcae77fb32
HHH-17885 Fix for same named attribute of different Embedded uses same selection expression
2024-04-04 09:24:22 +02:00
Christian Beikov
1fe26bc7f4
HHH-17885 Test for same named attribute of different Embedded uses same selection expression
2024-04-04 09:24:22 +02:00
Andrea Boriero
d18d925e10
HHH-17881 Unable to use a proxy as parameter in Query when the FK does not target the PK
2024-04-03 13:58:08 +02:00
Andrea Boriero
8c8e52eae9
HHH-17881 Add test for issue
2024-04-03 13:58:08 +02:00
Andrea Boriero
c6a9278599
HHH-16672 Locking entities created in the same transaction fails
2024-04-03 13:56:18 +02:00
Daniel Mensinger
ca2ae23f78
HHH-16672 test case
2024-04-03 13:56:18 +02:00
Marco Belladelli
cf4af826fe
HHH-17828 Special case for uninitialized enhanced proxies when locking
2024-04-03 09:54:21 +02:00
Daniel Mensinger
47d8bea6a4
HHH-17828 Add test for issue
2024-04-03 09:54:21 +02:00
Christian Beikov
b567483f9f
HHH-17908 Allow varchar for STRING enums on MySQL in schema validation
2024-04-02 16:43:30 +02:00
Christian Beikov
dba8a54692
HHH-17898 Throw error if non-lateral from-clause subquery uses outer from node
2024-04-02 16:41:59 +02:00
Marco Belladelli
37714a6b1a
HHH-17835 Custom ConvertedPrimitiveBasicTypeImpl type resolution
2024-04-02 12:48:17 +02:00
Marco Belladelli
50acce43c3
HHH-17835 Add test for issue
2024-04-02 12:48:17 +02:00
Marco Belladelli
af747ad531
HHH-17803 Fix resolving enum basic path source mapping expressibles
2024-03-29 10:40:15 +01:00
Marco Belladelli
437a2e5cd3
HHH-17803 Add test for issue
2024-03-29 10:40:15 +01:00
Jan Schatteman
edb1126d4d
HHH-17493 - Merge WithJpaComplianceNegatedPredicateTest into NegatedPredicateTest (possible now after the merge of PR #7990 )
...
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2024-03-28 23:04:22 +01:00
Gavin King
3dc5896a08
handle inner enum literal in HQL
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 22:32:41 +01:00
Gavin King
ce317960fc
handle unqualified enum values in @Query
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 22:32:41 +01:00
Gavin King
f0c9d4ec4c
make fully-qualified enum literals in @Query pass the validation
...
JD examples and TCK require this, though it's not really correct
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 22:32:41 +01:00
Christian Beikov
fe4a3fbaf3
HHH-17906 Use insert target paths for type inference of SqmValues
2024-03-28 17:02:20 +01:00
Christian Beikov
d423b52be3
HHH-17904 Introduce config property to enable native enum type
2024-03-28 17:02:20 +01:00
Christian Beikov
95641b2366
HHH-17884 Respect ordering guarantee of ORDINAL/STRING when using native enums
2024-03-28 17:02:20 +01:00
Christian Beikov
7e29539153
HHH-17493 Ensure case insensitivity is retained in negated copy
2024-03-28 16:44:39 +01:00
Jan Schatteman
6717c7cba0
HHH-17493 - add tests and fix
...
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2024-03-28 16:44:39 +01:00
Yanming Zhou
3c2374de5c
HHH-12202 Introduce ParameterType.getReturnedJavaType() as companion of getReturnedClass()
2024-03-28 16:09:16 +01:00
Vincent Bouthinon
915c8b8ead
HHH-17871 Error if defining a ManyToAny in the child classes which references a @MappedSuperclass
...
Rename column "ROLE" to "ROLE_COL" for a problem with sybase
2024-03-28 16:07:35 +01:00
Vincent Bouthinon
fdd3ded888
HHH-17871 Error if defining a ManyToAny in the child classes which references a @MappedSuperclass
2024-03-28 16:07:35 +01:00
Jan Schatteman
454e1cb774
HHH-17824 - Extend the use of @Jpa to test methods
...
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2024-03-28 08:51:49 -05:00
Steve Ebersole
ddcfc54661
HHH-17429 - Complete implementation of HbmXmlTransformer (6.x)
...
HHH-16822 - Fail to marshall transformed content with HbmXmlTransformer
2024-03-28 07:12:20 -05:00
Gavin King
2955e0b91d
spec-compliant inference of entity type in @Query
...
Signed-off-by: Gavin King <gavin@hibernate.org>
2024-03-28 00:41:01 +01:00
Christian Beikov
603f7ff2d2
HHH-17897 Fix support for joining CTEs in HQL
2024-03-27 16:43:23 +01:00
Vladimír Kuruc
49f27dcd0e
HHH-17862 Fix TemporaryTable identity column sqlTypeName error
2024-03-27 16:30:39 +01:00
Yanming Zhou
7fcbf3d433
Fix that `foreignKeyEnabled` is not copied
2024-03-27 14:15:20 +01:00
Vladimír Kuruc
9e8fe5ca07
HHH-14080 fix Dialect-Aware Rendering of Null Value Literals for InformixDialect
2024-03-27 13:33:30 +01:00
Christian Beikov
76ca5fb790
HHH-10619 Add test for JTA timeout handling
2024-03-27 13:26:09 +01:00
Davide D'Alto
12b3afced0
HHH-17876 Changes for Hibernate Reactive 2.3
...
Change the scope of some methods and add some getters, so that
subclasses in Hibernate Reactive can reuse some of the existing code.
2024-03-27 10:34:57 +01:00
Davide D'Alto
6dc7f8328a
HHH-17876 Minor: remove empty else block
2024-03-27 10:34:57 +01:00
Davide D'Alto
8c4ac57443
HHH-17876 Minor syntax fix in comment
2024-03-27 10:34:57 +01:00
Marco Belladelli
09b5829e8e
HHH-17867 Add test for issue
2024-03-25 18:13:57 +01:00
Christian Beikov
569ae56aba
HHH-17801 Resolve enum basic types to avoid type validation issues
2024-03-25 17:28:48 +01:00
Gavin King
77916c8304
10 years is more than long enough for users to be fully WARNed
2024-03-25 17:26:31 +01:00
marko-bekhta
d3357fe719
HHH-17872 Make sure that JdbcServicesImpl does not return a null SqlExceptionHelper
2024-03-25 17:21:00 +01:00
Marco Belladelli
234b24c922
HHH-17878 `Configurable` generators and `@IdGeneratorType`
2024-03-25 16:13:27 +01:00
Gavin King
b75cccfc4d
fix a couple of warnings
2024-03-25 13:27:18 +01:00
Gavin King
f81124c511
fix an ancient error message
2024-03-24 18:27:34 +01:00
Gavin King
31a63b1b1b
introduce @Suppress annotation to disable processor
2024-03-22 14:20:39 +01:00
Gavin King
c14c608199
extract a method
2024-03-21 16:45:05 +01:00
Gavin King
9362964ebd
HHH-17874 deprecate @GenericGenerator
2024-03-21 16:45:05 +01:00
Gavin King
49b80f636d
use a static final since we have it sitting there
2024-03-21 16:45:05 +01:00
Marco Belladelli
415a27434f
HHH-17472 Move `allowAssignedIdentifiers()` up to `Generator` interface
...
Also test with `@IdGeneratorType`
2024-03-21 16:18:30 +01:00
marko-bekhta
22966aea6a
HHH-17779 Add UnsupportedOperationException throwing impl of getKeyedResultList to the AbstractQuery
2024-03-21 09:07:17 +01:00
Christian Beikov
5817fd9323
HHH-17759 Avoid costly string search and replace
2024-03-20 16:37:44 -05:00
dgh
59e3f352cc
HHH-17759 Avoid need for undocumented escaping of colon characters in native queries
2024-03-20 16:37:44 -05:00
Gregorio Palamà
527beb0bdb
HHH-14968 - Support for auto-enabled filters
2024-03-20 16:08:11 -05:00
Andrea Boriero
62d1f1a13a
HHH-17568 The none variant of BytecodeProviderImpl @Nullable ReflectionOptimizer getReflectionOptimizer(Class<?> clazz, Map<String, PropertyAccess> propertyAccessMap) should return null
2024-03-20 11:41:39 -05:00
Andrea Boriero
e4e26ee989
HHH-17073 Add PrePartialAutoFlush listeners
2024-03-20 16:39:40 +01:00
Andrea Boriero
fe77bcfee9
HHH-17073 Auto flush broken when using sequence generator ID
2024-03-20 16:39:40 +01:00
Andrea Boriero
7a4523a470
HHH-17073 Add test for issue
2024-03-20 16:39:40 +01:00
Steve Ebersole
d93bc3c5c8
prep 6.5
2024-03-20 08:56:47 -05:00
Gavin King
bcc3ea60de
HHH-17868 introduce @Pattern annotation
2024-03-20 11:29:32 +01:00
Jan Schatteman
30afa87434
HHH-9482 - Avoid automatic timing out when requested timeout is 1 second
...
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
2024-03-18 13:32:45 +01:00
Christian Beikov
bf807f2694
HHH-17854 Avoid adding plural attribute restrictions multiple times
2024-03-18 11:52:06 +01:00