2
2
=== Collections
3
3
:majorMinorVersion: 6.2
4
4
:root-project-dir: ../../../../../../..
5
- :documentation-project-dir: {root-project-dir}/documentation
6
- :example-dir-collection-doc: {documentation-project-dir}/src/test/java/org/hibernate/userguide/collections
7
5
:core-project-dir: {root-project-dir}/hibernate-core
8
6
:core-test-base: {core-project-dir}/src/test/java
9
7
:example-dir-collection: {core-test-base}/org/hibernate/orm/test/mapping/collections
@@ -484,7 +482,7 @@ Behind the scenes, Hibernate requires an association table to manage the parent-
484
482
====
485
483
[source,java]
486
484
----
487
- include::{example-dir-collection-doc }/UnidirectionalBagTest.java[tags=collections-unidirectional-bag-example,indent=0]
485
+ include::{example-dir-collection}/UnidirectionalBagTest.java[tags=collections-unidirectional-bag-example,indent=0]
488
486
----
489
487
490
488
[source,sql]
@@ -507,7 +505,7 @@ By marking the parent side with the `CascadeType.ALL` attribute, the unidirectio
507
505
====
508
506
[source,java]
509
507
----
510
- include::{example-dir-collection-doc }/UnidirectionalBagTest.java[tags=collections-unidirectional-bag-lifecycle-example,indent=0]
508
+ include::{example-dir-collection}/UnidirectionalBagTest.java[tags=collections-unidirectional-bag-lifecycle-example,indent=0]
511
509
----
512
510
513
511
[source,sql]
@@ -536,7 +534,7 @@ The `@ManyToOne` side is the owning side of the bidirectional bag association, w
536
534
====
537
535
[source,java]
538
536
----
539
- include::{example-dir-collection-doc }/BidirectionalBagTest.java[tags=collections-bidirectional-bag-example,indent=0]
537
+ include::{example-dir-collection}/BidirectionalBagTest.java[tags=collections-bidirectional-bag-example,indent=0]
540
538
----
541
539
542
540
[source,sql]
@@ -550,7 +548,7 @@ include::{extrasdir}/collections-bidirectional-bag-example.sql[]
550
548
====
551
549
[source,java]
552
550
----
553
- include::{example-dir-collection-doc }/BidirectionalBagTest.java[tags=collections-bidirectional-bag-lifecycle-example,indent=0]
551
+ include::{example-dir-collection}/BidirectionalBagTest.java[tags=collections-bidirectional-bag-lifecycle-example,indent=0]
554
552
----
555
553
556
554
[source,sql]
@@ -564,7 +562,7 @@ include::{extrasdir}/collections-bidirectional-bag-lifecycle-example.sql[]
564
562
====
565
563
[source,java]
566
564
----
567
- include::{example-dir-collection-doc }/BidirectionalBagOrphanRemovalTest.java[tags=collections-bidirectional-bag-orphan-removal-example,indent=0]
565
+ include::{example-dir-collection}/BidirectionalBagOrphanRemovalTest.java[tags=collections-bidirectional-bag-orphan-removal-example,indent=0]
568
566
----
569
567
570
568
[source,sql]
@@ -594,7 +592,7 @@ When using the `@OrderBy` annotation, the mapping looks as follows:
594
592
====
595
593
[source,java]
596
594
----
597
- include::{example-dir-collection-doc }/UnidirectionalOrderedByListTest.java[tags=collections-unidirectional-ordered-list-order-by-example,indent=0]
595
+ include::{example-dir-collection}/UnidirectionalOrderedByListTest.java[tags=collections-unidirectional-ordered-list-order-by-example,indent=0]
598
596
----
599
597
====
600
598
@@ -626,7 +624,7 @@ Another ordering option is to use the `@OrderColumn` annotation:
626
624
====
627
625
[source,java]
628
626
----
629
- include::{example-dir-collection-doc }/UnidirectionalOrderColumnListTest.java[tags=collections-unidirectional-ordered-list-order-column-example,indent=0]
627
+ include::{example-dir-collection}/UnidirectionalOrderColumnListTest.java[tags=collections-unidirectional-ordered-list-order-column-example,indent=0]
630
628
----
631
629
632
630
[source,sql]
@@ -659,7 +657,7 @@ The mapping is similar with the <<collections-bidirectional-bag>> example, just
659
657
====
660
658
[source,java]
661
659
----
662
- include::{example-dir-collection-doc }/BidirectionalOrderByListTest.java[tags=collections-bidirectional-ordered-list-order-by-example,indent=0]
660
+ include::{example-dir-collection}/BidirectionalOrderByListTest.java[tags=collections-bidirectional-ordered-list-order-by-example,indent=0]
663
661
----
664
662
====
665
663
@@ -672,7 +670,7 @@ When using the `@OrderColumn` annotation, the `order_id` column is going to be e
672
670
====
673
671
[source,java]
674
672
----
675
- include::{example-dir-collection-doc }/BidirectionalOrderColumnListTest.java[tags=collections-bidirectional-ordered-list-order-column-example,indent=0]
673
+ include::{example-dir-collection}/BidirectionalOrderColumnListTest.java[tags=collections-bidirectional-ordered-list-order-column-example,indent=0]
676
674
----
677
675
678
676
[source,sql]
@@ -693,7 +691,7 @@ You can customize the ordinal of the underlying ordered list by using the https:
693
691
====
694
692
[source,java]
695
693
----
696
- include::{example-dir-collection-doc }/OrderColumnListIndexBaseTest.java[tags=collections-customizing-ordered-list-ordinal-mapping-example,indent=0]
694
+ include::{example-dir-collection}/OrderColumnListIndexBaseTest.java[tags=collections-customizing-ordered-list-ordinal-mapping-example,indent=0]
697
695
----
698
696
====
699
697
@@ -704,7 +702,7 @@ When inserting two `Phone` records, Hibernate is going to start the List index f
704
702
====
705
703
[source,java]
706
704
----
707
- include::{example-dir-collection-doc }/OrderColumnListIndexBaseTest.java[tags=collections-customizing-ordered-list-ordinal-persist-example,indent=0]
705
+ include::{example-dir-collection}/OrderColumnListIndexBaseTest.java[tags=collections-customizing-ordered-list-ordinal-persist-example,indent=0]
708
706
----
709
707
710
708
[source,sql]
@@ -729,7 +727,7 @@ by the number of characters of the `name` attribute.
729
727
====
730
728
[source,java]
731
729
----
732
- include::{example-dir-collection-doc }/OrderedBySQLTest.java[tags=collections-customizing-ordered-by-sql-clause-mapping-example,indent=0]
730
+ include::{example-dir-collection}/OrderedBySQLTest.java[tags=collections-customizing-ordered-by-sql-clause-mapping-example,indent=0]
733
731
----
734
732
====
735
733
@@ -740,7 +738,7 @@ When fetching the `articles` collection, Hibernate uses the ORDER BY SQL clause
740
738
====
741
739
[source,java]
742
740
----
743
- include::{example-dir-collection-doc }/OrderedBySQLTest.java[tags=collections-customizing-ordered-by-sql-clause-fetching-example,indent=0]
741
+ include::{example-dir-collection}/OrderedBySQLTest.java[tags=collections-customizing-ordered-by-sql-clause-fetching-example,indent=0]
744
742
----
745
743
746
744
[source,sql]
@@ -764,7 +762,7 @@ The unidirectional set uses a link table to hold the parent-child associations a
764
762
====
765
763
[source,java]
766
764
----
767
- include::{example-dir-collection-doc }/UnidirectionalSetTest.java[tags=collections-unidirectional-set-example,indent=0]
765
+ include::{example-dir-collection}/UnidirectionalSetTest.java[tags=collections-unidirectional-set-example,indent=0]
768
766
----
769
767
====
770
768
@@ -789,7 +787,7 @@ The lifecycle is just like with bidirectional bags except for the duplicates whi
789
787
====
790
788
[source,java]
791
789
----
792
- include::{example-dir-collection-doc }/BidirectionalSetTest.java[tags=collections-bidirectional-set-example,indent=0]
790
+ include::{example-dir-collection}/BidirectionalSetTest.java[tags=collections-bidirectional-set-example,indent=0]
793
791
----
794
792
====
795
793
@@ -809,7 +807,7 @@ A `SortedSet` that relies on the natural sorting order given by the child elemen
809
807
====
810
808
[source,java]
811
809
----
812
- include::{example-dir-collection-doc }/UnidirectionalSortedSetTest.java[tags=collections-unidirectional-sorted-set-natural-comparator-example,indent=0]
810
+ include::{example-dir-collection}/UnidirectionalSortedSetTest.java[tags=collections-unidirectional-sorted-set-natural-comparator-example,indent=0]
813
811
----
814
812
====
815
813
@@ -822,7 +820,7 @@ To provide a custom sorting logic, Hibernate also provides a `@SortComparator` a
822
820
====
823
821
[source,java]
824
822
----
825
- include::{example-dir-collection-doc }/UnidirectionalComparatorSortedSetTest.java[tags=collections-unidirectional-sorted-set-custom-comparator-example,indent=0]
823
+ include::{example-dir-collection}/UnidirectionalComparatorSortedSetTest.java[tags=collections-unidirectional-sorted-set-custom-comparator-example,indent=0]
826
824
----
827
825
====
828
826
@@ -836,9 +834,9 @@ The `@SortNatural` and `@SortComparator` work the same for bidirectional sorted
836
834
====
837
835
[source,java]
838
836
----
839
- include::{example-dir-collection-doc }/BidirectionalSortedSetTest.java[tags=collections-bidirectional-sorted-set-example,indent=0]
837
+ include::{example-dir-collection}/BidirectionalSortedSetTest.java[tags=collections-bidirectional-sorted-set-example,indent=0]
840
838
841
- include::{example-dir-collection-doc }/UnidirectionalComparatorSortedSetTest.java[lines=75..77,indent=0]
839
+ include::{example-dir-collection}/UnidirectionalComparatorSortedSetTest.java[lines=75..77,indent=0]
842
840
----
843
841
====
844
842
@@ -871,7 +869,7 @@ A map of value type must use the `@ElementCollection` annotation, just like valu
871
869
====
872
870
[source,java]
873
871
----
874
- include::{example-dir-collection-doc }/ElementCollectionMapTest.java[tags=collections-map-value-type-entity-key-example,indent=0]
872
+ include::{example-dir-collection}/ElementCollectionMapTest.java[tags=collections-map-value-type-entity-key-example,indent=0]
875
873
----
876
874
877
875
[source,sql]
@@ -887,7 +885,7 @@ Adding entries to the map generates the following SQL statements:
887
885
====
888
886
[source,java]
889
887
----
890
- include::{example-dir-collection-doc }/ElementCollectionMapTest.java[tags=collections-map-value-type-entity-key-add-example,indent=0]
888
+ include::{example-dir-collection}/ElementCollectionMapTest.java[tags=collections-map-value-type-entity-key-add-example,indent=0]
891
889
----
892
890
893
891
[source,sql]
@@ -925,7 +923,7 @@ Since we want to map all the calls by their associated `java.util.Date`, not by
925
923
====
926
924
[source,java]
927
925
----
928
- include::{example-dir-collection-doc }/MapKeyTypeTest.java[tags=collections-map-custom-key-type-mapping-example,indent=0]
926
+ include::{example-dir-collection}/MapKeyTypeTest.java[tags=collections-map-custom-key-type-mapping-example,indent=0]
929
927
----
930
928
====
931
929
@@ -940,7 +938,7 @@ Considering you have the following `PhoneNumber` interface with an implementatio
940
938
====
941
939
[source,java]
942
940
----
943
- include::{example-dir-collection-doc }/MapKeyClassTest.java[tags=collections-map-key-class-type-mapping-example,indent=0]
941
+ include::{example-dir-collection}/MapKeyClassTest.java[tags=collections-map-key-class-type-mapping-example,indent=0]
944
942
----
945
943
====
946
944
@@ -952,7 +950,7 @@ If you want to use the `PhoneNumber` interface as a `java.util.Map` key, then yo
952
950
====
953
951
[source,java]
954
952
----
955
- include::{example-dir-collection-doc }/MapKeyClassTest.java[tags=collections-map-key-class-mapping-example,indent=0]
953
+ include::{example-dir-collection}/MapKeyClassTest.java[tags=collections-map-key-class-mapping-example,indent=0]
956
954
----
957
955
958
956
[source,sql]
@@ -969,7 +967,7 @@ Hibernate generates the following SQL statements:
969
967
====
970
968
[source,java]
971
969
----
972
- include::{example-dir-collection-doc }/MapKeyClassTest.java[tags=collections-map-key-class-persist-example,indent=0]
970
+ include::{example-dir-collection}/MapKeyClassTest.java[tags=collections-map-key-class-persist-example,indent=0]
973
971
----
974
972
975
973
[source,sql]
@@ -986,7 +984,7 @@ Hibernate generates the following SQL statements:
986
984
====
987
985
[source,java]
988
986
----
989
- include::{example-dir-collection-doc }/MapKeyClassTest.java[tags=collections-map-key-class-fetch-example,indent=0]
987
+ include::{example-dir-collection}/MapKeyClassTest.java[tags=collections-map-key-class-fetch-example,indent=0]
990
988
----
991
989
992
990
[source,sql]
@@ -1013,7 +1011,7 @@ The `@MapKey` annotation is used to define the entity attribute used as a key of
1013
1011
====
1014
1012
[source,java]
1015
1013
----
1016
- include::{example-dir-collection-doc }/UnidirectionalMapTest.java[tags=collections-map-unidirectional-example,indent=0]
1014
+ include::{example-dir-collection}/UnidirectionalMapTest.java[tags=collections-map-unidirectional-example,indent=0]
1017
1015
----
1018
1016
1019
1017
[source,sql]
@@ -1034,7 +1032,7 @@ In the following example, you can see that `@MapKeyEnumerated` was used so that
1034
1032
====
1035
1033
[source,java]
1036
1034
----
1037
- include::{example-dir-collection-doc }/BidirectionalMapTest.java[tags=collections-map-bidirectional-example,indent=0]
1035
+ include::{example-dir-collection}/BidirectionalMapTest.java[tags=collections-map-bidirectional-example,indent=0]
1038
1036
----
1039
1037
1040
1038
[source,sql]
@@ -1068,7 +1066,7 @@ but now, Hibernate will leverage the native array data types if possible.
1068
1066
====
1069
1067
[source,java]
1070
1068
----
1071
- include::{example-dir-collection-doc }/ArrayTest.java[tags=collections-array-as-basic-example,indent=0]
1069
+ include::{example-dir-collection}/ArrayTest.java[tags=collections-array-as-basic-example,indent=0]
1072
1070
----
1073
1071
1074
1072
[source,sql]
@@ -1091,7 +1089,7 @@ default mapped like basic arrays as depicted in the <<collections-array-as-basic
1091
1089
====
1092
1090
[source,java]
1093
1091
----
1094
- include::{example-dir-collection-doc }/CollectionTest.java[tags=collections-as-basic-example,indent=0]
1092
+ include::{example-dir-collection}/CollectionTest.java[tags=collections-as-basic-example,indent=0]
1095
1093
----
1096
1094
1097
1095
[source,sql]
0 commit comments