Skip to content

Pk auto inc flyway fix #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 67 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
ed46b85
adding domain object
springframeworkguru Jun 12, 2021
49b8e4a
adding equals and hash
springframeworkguru Jun 12, 2021
784d631
adding repo
springframeworkguru Jun 12, 2021
c40df5b
adding init data
springframeworkguru Jun 12, 2021
bd84b58
show sql statements
springframeworkguru Jun 12, 2021
bb4e2b3
adding h2 console
springframeworkguru Jun 12, 2021
8883657
adding mysql user scripts
springframeworkguru Jul 3, 2021
3dcaab4
adding db test
springframeworkguru Jul 3, 2021
9738741
adding test splice
springframeworkguru Jul 3, 2021
31df8f5
adding transaction demo
springframeworkguru Jul 3, 2021
0931be3
adding bootstrap back to config for test splice
springframeworkguru Jul 3, 2021
0c9fb40
Fix typo in script
springframeworkguru Jul 4, 2021
98cc727
Merge branch 'create-my-sql-users' into spring-boot-test
springframeworkguru Jul 4, 2021
886bc26
Merge branch 'spring-boot-test' into data-jpa-test
springframeworkguru Jul 4, 2021
1e44bf5
Merge branch 'data-jpa-test' into transaction-demo
springframeworkguru Jul 4, 2021
c11f72a
Merge branch 'transaction-demo' into init-data-in-splice
springframeworkguru Jul 4, 2021
9acccc4
adding mySQL config
springframeworkguru Jul 4, 2021
dbf1568
adding mysql integration test
springframeworkguru Jul 4, 2021
9c95267
adding h2-compatibility mode
springframeworkguru Jul 4, 2021
42ebb39
adding mysql integration test
springframeworkguru Jul 4, 2021
c18b2f2
adding mySql init
springframeworkguru Jul 4, 2021
3ced3fb
adding h2 profile
springframeworkguru Aug 14, 2021
7233e1b
flyway springboot config
springframeworkguru Aug 14, 2021
5f9fc22
adding Author table
springframeworkguru Aug 14, 2021
e29046b
adding alter table example
springframeworkguru Aug 15, 2021
8fe82cd
adding flyway clean
springframeworkguru Aug 15, 2021
a793280
adding auto increment example
springframeworkguru Aug 15, 2021
c199bfd
adding author uuid
springframeworkguru Aug 15, 2021
dff7ba6
fixed typo
springframeworkguru Aug 15, 2021
1a73ccc
adding uuid2 example
springframeworkguru Aug 15, 2021
1a630eb
adding h2 migration
springframeworkguru Aug 16, 2021
d8406c7
Merge branch 'pk-auto-inc-flyway-fix' into pk-uuid
springframeworkguru Aug 16, 2021
ff934d1
updating for h2 migration change
springframeworkguru Aug 16, 2021
7be17e1
Merge branch 'pk-uuid' into pk-uuid2
springframeworkguru Aug 16, 2021
53b5532
updating for h2 migration change
springframeworkguru Aug 16, 2021
4d82268
Merge branch 'master' into domain
springframeworkguru Jul 6, 2022
03a53dd
Updating to Java 17 and Spring Boot 3.x
springframeworkguru Jul 6, 2022
161f8a6
Merge branch 'domain' into equality
springframeworkguru Jul 6, 2022
437387b
Merge branch 'equality' into repositories
springframeworkguru Jul 6, 2022
79f40b0
Merge branch 'repositories' into init-data
springframeworkguru Jul 6, 2022
65fb430
Merge branch 'init-data' into sql-logging
springframeworkguru Jul 6, 2022
0cdf1c8
Merge branch 'sql-logging' into h2-console
springframeworkguru Jul 6, 2022
0100e96
Merge branch 'h2-console' into spring-boot-test
springframeworkguru Jul 6, 2022
d0cb862
Merge branch 'spring-boot-test' into data-jpa-test
springframeworkguru Jul 6, 2022
3e4ba85
Merge branch 'data-jpa-test' into transaction-demo
springframeworkguru Jul 6, 2022
4d4b099
Merge branch 'transaction-demo' into init-data-in-splice
springframeworkguru Jul 6, 2022
ffa2374
Merge branch 'init-data-in-splice' into mysql-config
springframeworkguru Jul 6, 2022
034e7e4
Merge branch 'mysql-config' into mysql-integration-test
springframeworkguru Jul 6, 2022
181011b
Merge branch 'mysql-integration-test' into h2-mysql-mode
springframeworkguru Jul 6, 2022
3353676
Merge branch 'h2-mysql-mode' into h2-init-schema
springframeworkguru Jul 6, 2022
0c244c2
Merge branch 'h2-init-schema' into mysql-schema-init
springframeworkguru Jul 6, 2022
1e602ba
Merge branch 'mysql-schema-init' into mysql-h2-sb-app
springframeworkguru Jul 6, 2022
3b2ea04
Merge branch 'mysql-h2-sb-app' into fly-sb-cfg
springframeworkguru Jul 6, 2022
1097c51
Updating to Java 17 and Spring Boot 3.x - Update Flyway Dep
springframeworkguru Jul 6, 2022
46d4f32
Merge branch 'fly-sb-cfg' into fly-add-table-author
springframeworkguru Jul 6, 2022
acda61c
Updating to Java 17 and Spring Boot 3.x
springframeworkguru Jul 6, 2022
d634640
Merge branch 'fly-add-table-author' into fly-alter-table
springframeworkguru Jul 6, 2022
a319400
Merge branch 'fly-alter-table' into fly-clean
springframeworkguru Jul 6, 2022
48b2a38
Merge branch 'fly-clean' into pk-auto-inc
springframeworkguru Jul 6, 2022
d0a2919
Merge branch 'pk-auto-inc' into pk-auto-inc-flyway-fix
springframeworkguru Jul 6, 2022
2416596
Updating to Java 17 and Spring Boot 3.x - Update Flyway H2 script
springframeworkguru Jul 6, 2022
c9507f5
Merge branch 'pk-auto-inc-flyway-fix' into pk-uuid
springframeworkguru Jul 6, 2022
acd6101
Updating to Java 17 and Spring Boot 3.x
springframeworkguru Jul 6, 2022
b91d80f
Merge branch 'pk-uuid' into pk-uuid2
springframeworkguru Jul 6, 2022
d32a3b4
Updating to Java 17 and Spring Boot 3.x
springframeworkguru Jul 6, 2022
c2eadce
UUID 1 and 2. RFC 4122 Primary Key
Aug 28, 2022
d81630e
Merge pull request #1 from E-Ismail/pk-uuid2
E-Ismail Aug 28, 2022
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
22 changes: 21 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,19 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-mysql</artifactId>
</dependency>

<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
Expand All @@ -38,6 +46,18 @@
</dependency>
</dependencies>

<profiles>
<profile>
<id>h2</id>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>

<build>
<plugins>
<plugin>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package guru.springframework.sdjpaintro.bootstrap;

import guru.springframework.sdjpaintro.domain.AuthorUuid;
import guru.springframework.sdjpaintro.domain.Book;

import guru.springframework.sdjpaintro.domain.BookUuid;
import guru.springframework.sdjpaintro.repositories.AuthorUuidRepository;
import guru.springframework.sdjpaintro.repositories.BookRepository;
import guru.springframework.sdjpaintro.repositories.BookUuidRepository;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

/**
* Created by jt on 6/12/21.
*/
@Profile({"local", "default"})
@Component
public class DataInitializer implements CommandLineRunner {

private final BookRepository bookRepository;
private final AuthorUuidRepository authorUuidRepository;
private final BookUuidRepository bookUuidRepository;

public DataInitializer(BookRepository bookRepository, AuthorUuidRepository authorUuidRepository, BookUuidRepository bookUuidRepository) {
this.bookRepository = bookRepository;
this.authorUuidRepository = authorUuidRepository;
this.bookUuidRepository = bookUuidRepository;
}

@Override
public void run(String... args) throws Exception {
bookRepository.deleteAll();
authorUuidRepository.deleteAll();

Book bookDDD = new Book("Domain Driven Design", "123", "RandomHouse", null);
Book savedDDD = bookRepository.save(bookDDD);

Book bookSIA = new Book("Spring In Action", "234234", "Oriely", null);
Book savedSIA = bookRepository.save(bookSIA);

bookRepository.findAll().forEach(book -> {
System.out.println("Book Id: " + book.getId());
System.out.println("Book Title: " + book.getTitle());
});

AuthorUuid authorUuid = new AuthorUuid();
authorUuid.setFirstName("Joe");
authorUuid.setLastName("Buck");
AuthorUuid savedAuthor = authorUuidRepository.save(authorUuid);
System.out.println("Saved Author UUID: " + savedAuthor.getId() );

BookUuid bookUuid = new BookUuid();
bookUuid.setTitle("All About UUIDs");
BookUuid savedBookUuid = bookUuidRepository.save(bookUuid);
System.out.println("Saved Book UUID: " + savedBookUuid.getId());
}
}
22 changes: 22 additions & 0 deletions src/main/java/guru/springframework/sdjpaintro/config/DbClean.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package guru.springframework.sdjpaintro.config;

import org.springframework.boot.autoconfigure.flyway.FlywayMigrationStrategy;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
* Created by jt on 8/15/21.
*/
@Profile("clean")
@Configuration
public class DbClean {

@Bean
public FlywayMigrationStrategy clean(){
return flyway -> {
flyway.clean();
flyway.migrate();
};
}
}
58 changes: 58 additions & 0 deletions src/main/java/guru/springframework/sdjpaintro/domain/Author.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package guru.springframework.sdjpaintro.domain;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

/**
* Created by jt on 8/14/21.
*/
@Entity
public class Author {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String firstName;
private String lastName;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

Author author = (Author) o;

return id != null ? id.equals(author.id) : author.id == null;
}

@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package guru.springframework.sdjpaintro.domain;

import jakarta.persistence.*;
import org.hibernate.annotations.Type;

import java.util.UUID;

@Entity
public class AuthorUuid {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Type(type = "org.hibernate.type.UUIDCharType")
@Column(length = 36, columnDefinition = "varchar(36)", updatable = false, nullable = false)
private UUID id;

private String firstName;
private String lastName;

public UUID getId() {
return id;
}

public void setId(UUID id) {
this.id = id;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}


}
89 changes: 89 additions & 0 deletions src/main/java/guru/springframework/sdjpaintro/domain/Book.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package guru.springframework.sdjpaintro.domain;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import java.util.Objects;

/**
* Created by jt on 6/12/21.
*/
@Entity
public class Book {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String title;
private String isbn;
private String publisher;
private Long authorId;

public Book() {

}

public Book(String title, String isbn, String publisher, Long authorId) {
this.title = title;
this.isbn = isbn;
this.publisher = publisher;
this.authorId = authorId;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

Book book = (Book) o;

return Objects.equals(id, book.id);
}

@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getIsbn() {
return isbn;
}

public void setIsbn(String isbn) {
this.isbn = isbn;
}

public String getPublisher() {
return publisher;
}

public void setPublisher(String publisher) {
this.publisher = publisher;
}

public Long getAuthorId() {
return authorId;
}

public void setAuthorId(Long authorId) {
this.authorId = authorId;
}
}
60 changes: 60 additions & 0 deletions src/main/java/guru/springframework/sdjpaintro/domain/BookUuid.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package guru.springframework.sdjpaintro.domain;

import jakarta.persistence.*;
import org.hibernate.annotations.GenericGenerator;

import java.util.UUID;

@Entity
public class BookUuid {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2") //This is how to specify UUID RFC 4122 Primary Key
@Column(columnDefinition = "BINARY(16)", updatable = false, nullable = false)
private UUID id;

private String title;
private String isbn;
private String publisher;
private Long authorId;

public UUID getId() {
return id;
}

public void setId(UUID id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getIsbn() {
return isbn;
}

public void setIsbn(String isbn) {
this.isbn = isbn;
}

public String getPublisher() {
return publisher;
}

public void setPublisher(String publisher) {
this.publisher = publisher;
}

public Long getAuthorId() {
return authorId;
}

public void setAuthorId(Long authorId) {
this.authorId = authorId;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package guru.springframework.sdjpaintro.repositories;

import guru.springframework.sdjpaintro.domain.AuthorUuid;
import org.springframework.data.jpa.repository.JpaRepository;

/**
* Created by EI on 29/08/22.
*/
public interface AuthorUuidRepository extends JpaRepository<AuthorUuid, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package guru.springframework.sdjpaintro.repositories;

import guru.springframework.sdjpaintro.domain.Book;
import org.springframework.data.jpa.repository.JpaRepository;

/**
* Created by jt on 6/12/21.
*/
public interface BookRepository extends JpaRepository<Book, Long> {
}
Loading