Search in sources :

Example 1 with Book

use of com.iluwatar.cqrs.dto.Book in project java-design-patterns by iluwatar.

the class App method main.

/**
 * Program entry point
 *
 * @param args
 *          command line args
 */
public static void main(String[] args) {
    ICommandService commands = new CommandServiceImpl();
    // Create Authors and Books using CommandService
    commands.authorCreated("eEvans", "Eric Evans", "eEvans@email.com");
    commands.authorCreated("jBloch", "Joshua Bloch", "jBloch@email.com");
    commands.authorCreated("mFowler", "Martin Fowler", "mFowler@email.com");
    commands.bookAddedToAuthor("Domain-Driven Design", 60.08, "eEvans");
    commands.bookAddedToAuthor("Effective Java", 40.54, "jBloch");
    commands.bookAddedToAuthor("Java Puzzlers", 39.99, "jBloch");
    commands.bookAddedToAuthor("Java Concurrency in Practice", 29.40, "jBloch");
    commands.bookAddedToAuthor("Patterns of Enterprise Application Architecture", 54.01, "mFowler");
    commands.bookAddedToAuthor("Domain Specific Languages", 48.89, "mFowler");
    commands.authorNameUpdated("eEvans", "Eric J. Evans");
    IQueryService queries = new QueryServiceImpl();
    // Query the database using QueryService
    Author nullAuthor = queries.getAuthorByUsername("username");
    Author eEvans = queries.getAuthorByUsername("eEvans");
    BigInteger jBlochBooksCount = queries.getAuthorBooksCount("jBloch");
    BigInteger authorsCount = queries.getAuthorsCount();
    Book dddBook = queries.getBook("Domain-Driven Design");
    List<Book> jBlochBooks = queries.getAuthorBooks("jBloch");
    LOGGER.info("Author username : {}", nullAuthor);
    LOGGER.info("Author eEvans : {}", eEvans);
    LOGGER.info("jBloch number of books : {}", jBlochBooksCount);
    LOGGER.info("Number of authors : {}", authorsCount);
    LOGGER.info("DDD book : {}", dddBook);
    LOGGER.info("jBloch books : {}", jBlochBooks);
    HibernateUtil.getSessionFactory().close();
}
Also used : CommandServiceImpl(com.iluwatar.cqrs.commandes.CommandServiceImpl) IQueryService(com.iluwatar.cqrs.queries.IQueryService) Book(com.iluwatar.cqrs.dto.Book) Author(com.iluwatar.cqrs.dto.Author) BigInteger(java.math.BigInteger) ICommandService(com.iluwatar.cqrs.commandes.ICommandService) QueryServiceImpl(com.iluwatar.cqrs.queries.QueryServiceImpl)

Example 2 with Book

use of com.iluwatar.cqrs.dto.Book in project java-design-patterns by iluwatar.

the class QueryServiceImpl method getAuthorBooks.

@Override
public List<Book> getAuthorBooks(String username) {
    List<Book> bookDTos = null;
    try (Session session = sessionFactory.openSession()) {
        SQLQuery sqlQuery = session.createSQLQuery("SELECT b.title as \"title\", b.price as \"price\"" + " FROM Author a , Book b where b.author_id = a.id and a.username=:username");
        sqlQuery.setParameter("username", username);
        bookDTos = sqlQuery.setResultTransformer(Transformers.aliasToBean(Book.class)).list();
    }
    return bookDTos;
}
Also used : Book(com.iluwatar.cqrs.dto.Book) SQLQuery(org.hibernate.SQLQuery) Session(org.hibernate.Session)

Example 3 with Book

use of com.iluwatar.cqrs.dto.Book in project java-design-patterns by iluwatar.

the class QueryServiceImpl method getBook.

@Override
public Book getBook(String title) {
    Book bookDTo = null;
    try (Session session = sessionFactory.openSession()) {
        SQLQuery sqlQuery = session.createSQLQuery("SELECT b.title as \"title\", b.price as \"price\"" + " FROM Book b where b.title=:title");
        sqlQuery.setParameter("title", title);
        bookDTo = (Book) sqlQuery.setResultTransformer(Transformers.aliasToBean(Book.class)).uniqueResult();
    }
    return bookDTo;
}
Also used : Book(com.iluwatar.cqrs.dto.Book) SQLQuery(org.hibernate.SQLQuery) Session(org.hibernate.Session)

Example 4 with Book

use of com.iluwatar.cqrs.dto.Book in project java-design-patterns by iluwatar.

the class IntegrationTest method testGetBook.

@Test
public void testGetBook() {
    Book book = queryService.getBook("title1");
    assertEquals("title1", book.getTitle());
    assertEquals(10, book.getPrice(), 0.01);
}
Also used : Book(com.iluwatar.cqrs.dto.Book) Test(org.junit.jupiter.api.Test)

Aggregations

Book (com.iluwatar.cqrs.dto.Book)4 SQLQuery (org.hibernate.SQLQuery)2 Session (org.hibernate.Session)2 CommandServiceImpl (com.iluwatar.cqrs.commandes.CommandServiceImpl)1 ICommandService (com.iluwatar.cqrs.commandes.ICommandService)1 Author (com.iluwatar.cqrs.dto.Author)1 IQueryService (com.iluwatar.cqrs.queries.IQueryService)1 QueryServiceImpl (com.iluwatar.cqrs.queries.QueryServiceImpl)1 BigInteger (java.math.BigInteger)1 Test (org.junit.jupiter.api.Test)1