From b6fc5edc170ca61e635fdd12da6248f960732c74 Mon Sep 17 00:00:00 2001 From: tliero Date: Wed, 2 Mar 2016 13:54:21 +0100 Subject: [PATCH] pt. 1, step 2 - repositories and test data --- .classpath | 1 + pom.xml | 4 +-- .../tilman/transactions/domain/Account.java | 4 +-- .../de/tilman/transactions/domain/User.java | 10 +++++-- .../repository/AccountRepository.java | 8 +++++ .../repository/CategoryRepository.java | 9 ++++++ .../repository/TransactionRepository.java | 9 ++++++ .../repository/UserRepository.java | 13 +++++++++ src/main/resources/application.properties | 5 ++++ src/main/resources/data-h2.sql | 29 +++++++++++++++++++ 10 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 src/main/java/de/tilman/transactions/repository/AccountRepository.java create mode 100644 src/main/java/de/tilman/transactions/repository/CategoryRepository.java create mode 100644 src/main/java/de/tilman/transactions/repository/TransactionRepository.java create mode 100644 src/main/java/de/tilman/transactions/repository/UserRepository.java create mode 100644 src/main/resources/application.properties create mode 100644 src/main/resources/data-h2.sql diff --git a/.classpath b/.classpath index 01edbc4..e013f56 100644 --- a/.classpath +++ b/.classpath @@ -12,6 +12,7 @@ + diff --git a/pom.xml b/pom.xml index daf68c6..b55f960 100644 --- a/pom.xml +++ b/pom.xml @@ -24,10 +24,10 @@ com.h2database h2 - + diff --git a/src/main/java/de/tilman/transactions/domain/Account.java b/src/main/java/de/tilman/transactions/domain/Account.java index 19ebcc5..bcf0258 100644 --- a/src/main/java/de/tilman/transactions/domain/Account.java +++ b/src/main/java/de/tilman/transactions/domain/Account.java @@ -20,10 +20,10 @@ public class Account { private String name; - @ManyToOne + @ManyToOne(optional = false) private User owner; - @OneToMany + @OneToMany(mappedBy = "account") private List categories; @ManyToMany diff --git a/src/main/java/de/tilman/transactions/domain/User.java b/src/main/java/de/tilman/transactions/domain/User.java index 0c2528f..968810f 100644 --- a/src/main/java/de/tilman/transactions/domain/User.java +++ b/src/main/java/de/tilman/transactions/domain/User.java @@ -5,7 +5,9 @@ import java.util.List; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; -import javax.persistence.OneToMany; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; @Entity public class User { @@ -16,9 +18,10 @@ public class User { private String name; - @OneToMany + @ManyToMany + @JoinTable(name = "account_user", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "account_id", referencedColumnName = "id")) private List accounts; - + public Long getId() { return id; @@ -37,4 +40,5 @@ public class User { } + } diff --git a/src/main/java/de/tilman/transactions/repository/AccountRepository.java b/src/main/java/de/tilman/transactions/repository/AccountRepository.java new file mode 100644 index 0000000..1dbde79 --- /dev/null +++ b/src/main/java/de/tilman/transactions/repository/AccountRepository.java @@ -0,0 +1,8 @@ +package de.tilman.transactions.repository; + +import org.springframework.data.repository.CrudRepository; + +import de.tilman.transactions.domain.Account; + +public interface AccountRepository extends CrudRepository { +} diff --git a/src/main/java/de/tilman/transactions/repository/CategoryRepository.java b/src/main/java/de/tilman/transactions/repository/CategoryRepository.java new file mode 100644 index 0000000..22161ea --- /dev/null +++ b/src/main/java/de/tilman/transactions/repository/CategoryRepository.java @@ -0,0 +1,9 @@ +package de.tilman.transactions.repository; + +import org.springframework.data.repository.PagingAndSortingRepository; + +import de.tilman.transactions.domain.Category; + +public interface CategoryRepository extends PagingAndSortingRepository { + +} diff --git a/src/main/java/de/tilman/transactions/repository/TransactionRepository.java b/src/main/java/de/tilman/transactions/repository/TransactionRepository.java new file mode 100644 index 0000000..8d8a687 --- /dev/null +++ b/src/main/java/de/tilman/transactions/repository/TransactionRepository.java @@ -0,0 +1,9 @@ +package de.tilman.transactions.repository; + +import org.springframework.data.repository.PagingAndSortingRepository; + +import de.tilman.transactions.domain.Transaction; + +public interface TransactionRepository extends PagingAndSortingRepository { + +} diff --git a/src/main/java/de/tilman/transactions/repository/UserRepository.java b/src/main/java/de/tilman/transactions/repository/UserRepository.java new file mode 100644 index 0000000..07a26e8 --- /dev/null +++ b/src/main/java/de/tilman/transactions/repository/UserRepository.java @@ -0,0 +1,13 @@ +package de.tilman.transactions.repository; + +import org.springframework.data.repository.PagingAndSortingRepository; + +import de.tilman.transactions.domain.User; + +public interface UserRepository extends PagingAndSortingRepository { + +// @Override +// @PreAuthorize("hasRole('ROLE_ADMIN')") +// public Page findAll(Pageable pageable); + +} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..78c3363 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,5 @@ +spring.datasource.platform=h2 +security.user.name=sa +security.user.password= + +server.port=8080 diff --git a/src/main/resources/data-h2.sql b/src/main/resources/data-h2.sql new file mode 100644 index 0000000..a1dbe46 --- /dev/null +++ b/src/main/resources/data-h2.sql @@ -0,0 +1,29 @@ +INSERT INTO User (id, name) VALUES (1, 'Tilman'), (2, 'Anica'); +INSERT INTO Account (id, name, owner_id) VALUES (1, 'Gemeinschaftskonto', 1), (2, 'Konto Tilman', 1); + +INSERT INTO Category (id, name, account_id, position) VALUES (1, 'Essen - Lebensmittel', 1, 2), (2, 'Einnahmen - Gehalt', 1, 1), (3, 'Essen - Arbeit', 1, 3), (4, 'Einnahmen - Gehalt', 2, 1), (5, 'Technik - Server und Hosting', 2, 2); + + +INSERT INTO Account_User (account_id, user_id) VALUES (1, 1), (1, 2), (2, 1); + +INSERT INTO Transaction (id, amount, account_id, category_id, date, description, creditor_id) VALUES + (NULL, 1280.81, 1, 1, '2014-06-01', 'Gehalt', null), + (NULL, -2.21, 1, 2, '2014-06-10', 'Brot', null), + (NULL, -3.41, 1, 2, '2014-06-12', 'Gemüse', null), + (NULL, -7.81, 1, 3, '2014-06-19', 'Kantine', null), + (NULL, -4.81, 1, 3, '2014-06-18', 'Currywurst', 1), + (NULL, -4.50, 1, 3, '2014-06-19', 'Currywurst', null), + (NULL, -4.50, 1, 3, '2014-06-20', 'Currywurst', null), + (NULL, -4.50, 2, 3, '2014-06-20', 'Currywurst', null), + (NULL, -4.09, 1, 3, '2014-06-18', 'Currywurst-Frühstück', null), + (NULL, -4.90, 1, 3, '2014-06-18', 'Currywurst (Auslage Anica)', 2), + (NULL, -8.90, 1, 3, '2014-06-18', 'Curry beim Inder (Auslage Tilman)', 1), + (NULL, -12.00, 2, 3, '2014-06-18', 'Curry Thai', null), + (NULL, 1340.22, 2, 4, '2014-06-02', 'Gehalt Tilman', null), + (NULL, -12.90, 2, 5, '2014-06-16', 'Host Europe', null); + + +-- add as many transactions as needed +INSERT INTO Transaction (id, amount, account_id, category_id, date, description, creditor_id) VALUES (NULL, -1.50, 1, 2, CURRENT_TIMESTAMP(), 'Transaction', null); Commit; +INSERT INTO Transaction (id, amount, account_id, category_id, date, description, creditor_id) VALUES (NULL, -1.50, 1, 3, CURRENT_TIMESTAMP(), 'Transaction', null); Commit; +INSERT INTO Transaction (id, amount, account_id, category_id, date, description, creditor_id) VALUES (NULL, 1.50, 1, 4, CURRENT_TIMESTAMP()+1, 'LAST Transaction', null); Commit;