Slide 1

Slide 1 text

@otaviojava Jakarta NoSQL The simple way to succeed polyglot persistence Otávio Santana Software Engineer & Architect and Open Source Committer [email protected]

Slide 2

Slide 2 text

@otaviojava NoSQL key value key key key value value value Column Family Graph Document Key Value NoSQL Database

Slide 3

Slide 3 text

@otaviojava Jakarta Data + NoSQL Eclipse JNoSQL Common Annotation Multiple APIs Extensions Graph (Apache Tinkerpop) Document Column Key Graph Communication Mapping Entity

Slide 4

Slide 4 text

@otaviojava Easy Java with NoSQL Eclipse JNoSQL key value key key key value value value Column Family Graph Document Key Value

Slide 5

Slide 5 text

@otaviojava Repository Rest Client JPA NoSQL Jakarta Data

Slide 6

Slide 6 text

@otaviojava Motivation Jakarta NoSQL BaseDocument baseDocument = new BaseDocument(); baseDocument.addAttribute(name, value); Document document = new Document(); document.append(name, value); JsonObject jsonObject = JsonObject.create(); jsonObject.put(name, value); ODocument document = new ODocument(“collection”); document.field(name, value);

Slide 7

Slide 7 text

@otaviojava Making it easy Jakarta NoSQL DocumentEntity entity = DocumentEntity.of("collection"); entity.add(name, value);

Slide 8

Slide 8 text

@otaviojava Making it easy Jakarta NoSQL DEMO

Slide 9

Slide 9 text

@otaviojava Making it easy Jakarta NoSQL @Entity public record Pokemon (@Id String id,@Column String name, @Column String location){ }

Slide 10

Slide 10 text

@otaviojava Making it easy Jakarta NoSQL @Inject Template template; Pokemon pokemon = new Pokemon(id, name, location); template.insert(pokemon);

Slide 11

Slide 11 text

@otaviojava Making it easy Jakarta NoSQL @Inject DocumentTemplate template; Pokemon pokemon = new Pokemon(id, name, location); template.insert(pokemon);

Slide 12

Slide 12 text

@otaviojava Making it easy Jakarta NoSQL Template OtherTemplates DocumentTemplate ArangoDBTemplate MongoDBTemplate CouchbaseTemplate

Slide 13

Slide 13 text

@otaviojava Making it easy Jakarta NoSQL @Inject DocumentTemplate template; Pokemon pokemon = new Pokemon(id, name, location); template.insert(pokemon);

Slide 14

Slide 14 text

@otaviojava Making it easy Jakarta NoSQL @Repository public interface PokemonRepository extends PageableRepository { List findByName(String name); }

Slide 15

Slide 15 text

@otaviojava Making it easy Jakarta NoSQL @Repository public interface PokemonRepository extends PageableRepository { List findByName(String name); }

Slide 16

Slide 16 text

@otaviojava Making it easy Jakarta NoSQL DataRepository CrudRepository PageableRepository ArangoDBRepository MongoDBRepository CouchbaseRepository

Slide 17

Slide 17 text

@otaviojava Repository Rest Client JPA NoSQL Jakarta Data

Slide 18

Slide 18 text

Thank you! Otávio Santana Software Engineer & Architect [email protected] @otaviojava @otaviojava