Skip to content
Open
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
17 changes: 17 additions & 0 deletions src/main/java/ttv/poltoraha/pivka/entity/Chapter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package ttv.poltoraha.pivka.entity;

import jakarta.persistence.*;

@Entity
@Table(name = "chapter")
public class Chapter {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String title;
private Integer pageNumber;

@ManyToOne
@JoinColumn(name = "book_id")
private Book book;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ttv.poltoraha.pivka.repository;

import org.springframework.data.repository.CrudRepository;
import ttv.poltoraha.pivka.entity.Chapter;

public interface ChapterRepository extends CrudRepository<Chapter, Integer> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package ttv.poltoraha.pivka.repository;

import org.springframework.data.repository.CrudRepository;
import ttv.poltoraha.pivka.entity.Quote;

public interface QuoteRepository extends CrudRepository<Quote, Integer> {

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import ttv.poltoraha.pivka.entity.Reader;
import ttv.poltoraha.pivka.entity.Reading;
import ttv.poltoraha.pivka.repository.BookRepository;
import ttv.poltoraha.pivka.repository.QuoteRepository;
import ttv.poltoraha.pivka.repository.ReaderRepository;
import ttv.poltoraha.pivka.service.ReaderService;
import util.MyUtility;
Expand All @@ -19,6 +20,8 @@
public class ReaderServiceImpl implements ReaderService {
private final ReaderRepository readerRepository;
private final BookRepository bookRepository;
private final QuoteRepository quoteRepository;

@Override
public void createQuote(String username, Integer book_id, String text) {
val newQuote = new Quote();
Expand All @@ -33,7 +36,8 @@ public void createQuote(String username, Integer book_id, String text) {
reader.getQuotes().add(newQuote);

// todo потенциально лучше сейвить quoteRepository. Чем меньше вложенностей у сохраняемой сущности - тем эффективнее это будет происходить.
readerRepository.save(reader);
// readerRepository.save(reader);
quoteRepository.save(newQuote);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public List<Book> recommendBook(String username) {
*/
@Override
public List<Quote> recommendQuoteByBook(Integer book_id) {
if (bookRepository.existsById(book_id)) {
if (!bookRepository.existsById(book_id)) {
throw new EntityNotFoundException(String.format("Entity book with id = %s was not found", book_id));
}

Expand Down
23 changes: 23 additions & 0 deletions src/main/resources/db/changelog/v1.0.4_add_chapter_tables.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.6.xsd">

<changeSet id="v1.0.4-create-chapter-table" author="poltoraha_pivka">
<createTable tableName="chapter">
<column name="id" type="int" autoIncrement="true">
<constraints nullable="false" primaryKey="true"/>
</column>
<column name="title" type="varchar(255)">
<constraints nullable="false"/>
</column>
<column name="page_number" type="int">
<constraints nullable="false"/>
</column>
<column name="book_id" type="int">
<constraints nullable="false" foreignKeyName="fk_chapter_book" references="book(id)"/>
</column>
</createTable>
</changeSet>

</databaseChangeLog>
1 change: 1 addition & 0 deletions src/main/resources/db/liquibase-master.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<include file="changelog/v1.0.1_add_new_table_quote.xml" relativeToChangelogFile="true"/>
<include file="changelog/v1.0.2_add_new_table_review.xml" relativeToChangelogFile="true"/>
<include file="changelog/v1.0.3_add_security_tables.xml" relativeToChangelogFile="true"/>
<include file="changelog/v1.0.4_add_chapter_tables.xml" relativeToChangelogFile="true"/>
<!-- инклудим данные для базы-->
<include file="init-data/v1.0.0_init_data_author.xml" relativeToChangelogFile="true"/>
<include file="init-data/v1.0.1_init_data_book.xml" relativeToChangelogFile="true"/>
Expand Down