SDN seems unfeasible for our application - looking for advice

I am the sole developer of a research application at a nonprofit organization. These constraints limit how we can spend our dev time, so up until now we had been running outdated versions of Neo4j (Neo4j 3) and Spring Boot Starter Data Neo4j (2.1). We were really interested in trying Neo4j 5 and have spent the past month or so updating our tech stack.

However, the mapping changes related to going from OGM to SDN seems to be so sweeping that I'm unsure if we can even proceed with the update. The application is primarily for archaeologists to run complex social network analyses and other related statistical analyses to date sites or find relationships between dig sites. As such, a lot of our queries capture large chains of nodes and relationships, but, as far as I can tell, doing this in SDN no longer seems possible. For example, a simple query in our app from the Site repo might look like:

MATCH (s:Site)<-[r:SITE_ARTIFACTS]-(u)<-[:PROVENANCE_SECTION]-(ps:ProvenanceSection)
WHERE s.uuid = $siteUuid AND ps.uuid = $sectionUuid
MATCH (u)-[rt:TYPE]->(t:ObsidianType)
MATCH (u)-[rs:SOURCE]->(source:ObsidianSource)-[rosg:GROUP]->(group:ObsidianSourceGroup)
OPTIONAL MATCH (u)-[rc:CONTAINS]->(ai:ArtifactItem)-[rat:ARTTYPE]->(at:ArtType)
RETURN s, r, u, rt, t, rs, source, rosg, group, rc, ai, rat, at

Where we are looking for artifacts that are from a specific site and a specific collection (like a museum collection or collection at university). In this case we want specifically only the obsidian artifacts, information related to the specific type of obsidian, the obsidian's source and the group that source is a part of (like specific mountain in a general mountain range or something), as well as information on what kind of tool or item the artifact was made into, if anything.

In OGM this one query could capture and map all of this data no problem. But from trying to upgrade to SDN, and from my reading, doing these types of wide queries is no longer possible. For example, with SDN, the above query basically only captures the site and the artifacts (s, r, and u) but not any of the relationships or nodes related to the artifacts. It seems like the general advice has been to break this query up into multiple smaller queries and then connect them manually in Java. But when a site can have between 100,000 artifacts to millions, doing 4 or 5 separate queries per artifact is not feasible, both in the time running 5million queries would take and the amount of dev time needed to make these changes across our app. And again, this is one of our more basic queries - they can get exponentially more complicated depending on the analysis being run.

Basically, I'm wondering if I'm fundamentally misunderstanding something about SDN and if the above query is doable as a single query. Or, maybe there are simple changes we can make to the queries to make using SDN in the newer versions of spring viable.

Thank you for your time.

One of my data models is a network of a handful of entities. I used the java driver all my CRUD operations, as I want to update pieces of the network each time. I created a service to execute all the queries I want. I also wrote custom procedures for the complex traversal algorithms I needed. I would not have used SDN for this.

I have another service that tracts orders, with the typical components: user, order, order items, etc. SDN was perfect for this.

I suggest you look at the java driver or the neo4jclient. Once you get the hand of it, writing the queries is not hard. The differences that you are explicitly creating the domain objects from the query results.