HHH-11002 - Add documentation section about Filter and FilterDef

Remove @Where clause on collection since it does not work on this branch
This commit is contained in:
Vlad Mihalcea 2016-07-28 15:20:59 +03:00
parent ca9084cb53
commit a06cc89cdb
2 changed files with 2 additions and 42 deletions

View File

@ -84,20 +84,6 @@ To use these hibernate-java8 types just add the `hibernate-java8` dependency to
See <<basic-datetime>> for more about Java 8 Date/Time types. See <<basic-datetime>> for more about Java 8 Date/Time types.
==== ====
.BasicTypes added by hibernate-spatial
[cols=",,,",options="header",]
|=================================================================================================
|Hibernate type (org.hibernate.spatial package) |JDBC type |Java type |BasicTypeRegistry key(s)
|JTSGeometryType |depends on the dialect | com.vividsolutions.jts.geom.Geometry |jts_geometry, or the classname of Geometry or any of its subclasses
|GeolatteGeometryType |depends on the dialect | org.geolatte.geom.Geometry |geolatte_geometry, or the classname of Geometry or any of its subclasses
|=================================================================================================
[NOTE]
====
To use these hibernate-spatial types just must add the `hibernate-spatial` dependency to your classpath _and_ use a the `org.hibernate.spatial.SpatialDialect`.
See <<spatial>> for more about spatial types.
====
These mappings are managed by a service inside Hibernate called the `org.hibernate.type.BasicTypeRegistry`, which essentially maintains a map of `org.hibernate.type.BasicType` (a `org.hibernate.type.Type` specialization) instances keyed by a name. These mappings are managed by a service inside Hibernate called the `org.hibernate.type.BasicTypeRegistry`, which essentially maintains a map of `org.hibernate.type.BasicType` (a `org.hibernate.type.Type` specialization) instances keyed by a name.
That is the purpose of the "BasicTypeRegistry key(s)" column in the previous tables. That is the purpose of the "BasicTypeRegistry key(s)" column in the previous tables.
@ -1229,8 +1215,8 @@ The SQL fragment can be as complex as you want and even include subselects.
[[mapping-column-where]] [[mapping-column-where]]
==== @Where ==== @Where
Sometimes, you want to filter out entities or collections using a custom SQL criteria. Sometimes, you want to filter out entities using a custom SQL criteria.
This can be achieved using the `@Where` annotation, which can be applied to entities and collections. This can be achieved using the `@Where` annotation, which can be applied to entities, as you can see in the following mapping.
[[mapping-where-example]] [[mapping-where-example]]
.`@Where` mapping usage .`@Where` mapping usage
@ -1273,22 +1259,6 @@ include::{extrasdir}/basic/mapping-where-entity-query-example.sql[]
---- ----
==== ====
When fetching the `debitAccounts` or the `creditAccounts` collections, Hibernate is going to apply the `@Where` clause filtering criteria to the associated child entities.
[[mapping-where-collection-query-example]]
.Traversing collections mapped with `@Where`
====
[source, JAVA, indent=0]
----
include::{sourcedir}/basic/WhereTest.java[tags=mapping-where-collection-query-example]
----
[source, SQL, indent=0]
----
include::{extrasdir}/basic/mapping-where-collection-query-example.sql[]
----
====
[[mapping-column-filter]] [[mapping-column-filter]]
==== @Filter ==== @Filter

View File

@ -88,14 +88,6 @@ public class WhereTest extends BaseEntityManagerFunctionalTestCase {
assertEquals( 2, accounts.size()); assertEquals( 2, accounts.size());
} ); } );
//end::mapping-where-entity-query-example[] //end::mapping-where-entity-query-example[]
//tag::mapping-where-collection-query-example[]
doInJPA( this::entityManagerFactory, entityManager -> {
Client client = entityManager.find( Client.class, 1L );
assertEquals( 1, client.getCreditAccounts().size() );
assertEquals( 1, client.getDebitAccounts().size() );
} );
//end::mapping-where-collection-query-example[]
} }
//tag::mapping-where-example[] //tag::mapping-where-example[]
@ -112,11 +104,9 @@ public class WhereTest extends BaseEntityManagerFunctionalTestCase {
private String name; private String name;
@Where( clause = "account_type = 'DEBIT'")
@OneToMany(mappedBy = "client") @OneToMany(mappedBy = "client")
private List<Account> debitAccounts = new ArrayList<>( ); private List<Account> debitAccounts = new ArrayList<>( );
@Where( clause = "account_type = 'CREDIT'")
@OneToMany(mappedBy = "client") @OneToMany(mappedBy = "client")
private List<Account> creditAccounts = new ArrayList<>( ); private List<Account> creditAccounts = new ArrayList<>( );