Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions spring-data-javaslang/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/target/
/project/
.idea
.classpath
.eclipse
.project
.settings
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;

@Entity
Expand All @@ -20,8 +17,7 @@ public class Book {

private String title;

private Seq<String> authors;

private Seq<String> authors;

public void setTitle(String title){
this.title = title;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.transaction.Transactional;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import javaslang.concurrent.Future;
import javaslang.collection.Stream;
import javaslang.collection.Seq;
import javaslang.control.Option;

Expand All @@ -15,5 +17,6 @@ public interface BookRepository extends JpaRepository<Book,Long>{
Option<Book> findById(Long id);

Option<Seq<Book>> findByTitleContaining(String title);


Option<Stream<Book>> findAllByTitleIsNotNull();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.baeldung.spring_data.repository;


import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import com.baeldung.spring_data.model.JavaBook;
import java.util.Optional;
import java.util.stream.Stream;
import java.util.concurrent.Future;

import javax.transaction.Transactional;

@Repository
public interface Java8BookRepository extends JpaRepository<JavaBook,Long>{
JavaBook save(JavaBook book);

JavaBook findById(Long id);

Future<JavaBook> findLongRunningById(Long Id);

Optional<Stream<JavaBook>> findAllByTitleIsNotNull();
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.baeldung.spring_data.model.JavaBook;
import com.baeldung.spring_data.repository.BookRepository;
import com.baeldung.spring_data.repository.JavaBookRepository;
import com.baeldung.spring_data.repository.Java8BookRepository;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
Expand All @@ -18,7 +19,11 @@
import javaslang.collection.List;
import javaslang.control.Option;

import javax.transaction.Transactional;
import java.util.stream.Stream;
import java.util.ArrayList;
import java.util.Optional;
import java.util.concurrent.ExecutionException;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MainApp.class,webEnvironment = WebEnvironment.NONE)
Expand All @@ -27,9 +32,24 @@ public class SpringTests {
@Autowired
JavaBookRepository javaRepository;

@Autowired
Java8BookRepository java8Repository;

@Autowired
BookRepository repository;


@Test
public void should_return_javaslang_stream(){
Seq authors = List.of("author1","author2");
Book testBook = new Book();
testBook.setTitle("Javaslang in Spring Data Javaslang Stream Test");
testBook.setAuthors(authors);
Book book = repository.save(testBook);
Option<javaslang.collection.Stream<Book>> retStream = repository.findAllByTitleIsNotNull();
assert(!retStream.isEmpty());
}

@Test
public void should_return_seq(){
Seq authors = List.of("author1","author2");
Expand All @@ -55,7 +75,7 @@ public void should_return_option_with_book(){
}

@Test
public void should_return_list(){
public void should_return_java_list(){
ArrayList<String> authors = new ArrayList<String>();
authors.add("author1");
authors.add("author2");
Expand All @@ -70,7 +90,7 @@ public void should_return_list(){
}

@Test
public void should_return_book(){
public void should_return_javabook(){
ArrayList<String> authors = new ArrayList<String>();
authors.add("author1");
authors.add("author2");
Expand All @@ -83,4 +103,39 @@ public void should_return_book(){
assert(retBook.getId() == 1L);
assert(retBook.getTitle().contains("Data"));
}

@Transactional
@Test
public void should_return_java8_stream(){
ArrayList<String> authors = new ArrayList<String>();
authors.add("author1");
authors.add("author2");
JavaBook testBook = new JavaBook();
testBook.setTitle("Javaslang in Spring Data Stream");
testBook.setAuthors(authors);
JavaBook book = java8Repository.save(testBook);
Optional<Stream<JavaBook>> retStream = java8Repository.findAllByTitleIsNotNull();
assert(retStream.isPresent());
assert(retStream.get().toArray().length > 0);
}

@Test
public void should_return_java8_future(){
ArrayList<String> authors = new ArrayList<String>();
authors.add("author1");
authors.add("author2");
JavaBook testBook = new JavaBook();
testBook.setTitle("Javaslang in Spring Data Stream");
testBook.setAuthors(authors);
JavaBook book = java8Repository.save(testBook);
java.util.concurrent.Future<JavaBook> retBook = java8Repository.findLongRunningById(1L);
assert(retBook != null);
try {
assert(retBook.get() != null);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}