use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class QueryCapabilityTest method nestedFiltersOnSameEntitiesButDifferentRelationsShouldWork.
// GH-851
@Test
public void nestedFiltersOnSameEntitiesButDifferentRelationsShouldWork() {
Filters filters = new Filters();
Filter filter = new Filter("code", ComparisonOperator.EQUALS, "LHR");
filter.setOwnerEntityType(Flight.class);
filter.setNestedPropertyType(Airport.class);
filter.setNestedPropertyName("departure");
filter.setRelationshipType("DEPARTS");
filter.setRelationshipDirection(Relationship.OUTGOING);
filters.and(filter);
filter = new Filter("code", ComparisonOperator.EQUALS, "LAX");
filter.setOwnerEntityType(Flight.class);
filter.setNestedPropertyType(Airport.class);
filter.setNestedPropertyName("arrival");
filter.setRelationshipType("ARRIVES");
filter.setRelationshipDirection(Relationship.OUTGOING);
filters.and(filter);
Collection<Flight> flights = session.loadAll(Flight.class, filters);
assertThat(flights).hasSize(1).first().extracting(Flight::getName).isEqualTo("FL 001");
}
use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class QueryCapabilityTest method bothLoadStrategiesShouldBeAbleToDealWithPaths.
@Test
public void bothLoadStrategiesShouldBeAbleToDealWithPaths() {
for (LoadStrategy strategy : new LoadStrategy[] { LoadStrategy.PATH_LOAD_STRATEGY, LoadStrategy.SCHEMA_LOAD_STRATEGY }) {
SessionFactory localSessionFactory = new SessionFactory(getDriver(), "org.neo4j.ogm.domain.gh851");
localSessionFactory.setLoadStrategy(strategy);
Session session = localSessionFactory.openSession();
Filter f = new Filter("code", ComparisonOperator.EQUALS, "LAX");
Collection<Airport> airports = session.loadAll(Airport.class, f);
assertThat(airports).hasSize(1).first().extracting(Airport::getName).isEqualTo("Los Angeles");
session.clear();
// Keep the local session factory open, otherwise closing it will mess up the driver.
}
}
use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class MusicIntegrationTest method shouldRetrieveEntityByPropertyWithZeroDepth.
/**
* @see DATAGRAPH-629
*/
@Test
public void shouldRetrieveEntityByPropertyWithZeroDepth() {
Studio emi = new Studio("EMI Studios, London");
Artist theBeatles = new Artist("The Beatles");
Album please = new Album("Please Please Me");
Recording pleaseRecording = new Recording(please, emi, 1963);
please.setRecording(pleaseRecording);
theBeatles.getAlbums().add(please);
please.setArtist(theBeatles);
session.save(theBeatles);
theBeatles = session.loadAll(Artist.class).iterator().next();
assertThat(theBeatles.getName()).isEqualTo("The Beatles");
assertThat(theBeatles.getAlbums()).hasSize(1);
assertThat(theBeatles.getAlbums().iterator().next().getName()).isEqualTo("Please Please Me");
assertThat(theBeatles.getAlbums().iterator().next().getRecording().getStudio().getName()).isEqualTo("EMI Studios, London");
session.clear();
please = session.loadAll(Album.class, new Filter("name", ComparisonOperator.EQUALS, "Please Please Me"), 0).iterator().next();
assertThat(please.getName()).isEqualTo("Please Please Me");
assertThat(please.getArtist()).isNull();
assertThat(please.getRecording()).isNull();
}
use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class RestaurantIntegrationTest method shouldFilterByPropertyIn.
/**
* @see DATAGRAPH-904
*/
@Test
public void shouldFilterByPropertyIn() {
Restaurant sfo = new Restaurant("San Francisco International Airport (SFO)", 72.4);
sfo.setLaunchDate(new Date(1000));
session.save(sfo);
Restaurant kuroda = new Restaurant("Kuroda", 80.5);
kuroda.setLaunchDate(new Date(2000));
session.save(kuroda);
Filter filter = new Filter("name", ComparisonOperator.IN, new String[] { "Kuroda", "Foo", "Bar" });
Collection<Restaurant> results = session.loadAll(Restaurant.class, new Filters().add(filter));
assertThat(results).isNotNull();
assertThat(results).hasSize(1);
assertThat(results.iterator().next().getName()).isEqualTo("Kuroda");
}
use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class RestaurantIntegrationTest method shouldFilterByPropertyWithConverter.
/**
* @see DATAGRAPH-904
*/
@Test
public void shouldFilterByPropertyWithConverter() {
Restaurant kuroda = new Restaurant("Kuroda", 72.4);
kuroda.setLaunchDate(new Date(1000));
session.save(kuroda);
Restaurant cyma = new Restaurant("Cyma", 80.5);
cyma.setLaunchDate(new Date(2000));
session.save(cyma);
Filter launchDateFilter = new Filter("launchDate", ComparisonOperator.LESS_THAN, new Date(1001));
Collection<Restaurant> results = session.loadAll(Restaurant.class, new Filters().add(launchDateFilter));
assertThat(results).isNotNull();
assertThat(results).hasSize(1);
assertThat(results.iterator().next().getName()).isEqualTo("Kuroda");
Filter anotherFilter = new Filter("launchDate", ComparisonOperator.EQUALS, new Date(999));
results = session.loadAll(Restaurant.class, new Filters().add(anotherFilter));
assertThat(results).isNotNull();
assertThat(results).isEmpty();
}
Aggregations