Skip to content

Commit

Permalink
Merge pull request #2 from jv-jun23-team5/car-created-car-entity
Browse files Browse the repository at this point in the history
"added [Car] entity, added table in liquibase, added car repository"
  • Loading branch information
AntonZhdanov authored Oct 2, 2023
2 parents 21ae37e + 1038cd6 commit c01e7e2
Show file tree
Hide file tree
Showing 7 changed files with 128 additions and 18 deletions.
10 changes: 7 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>${liquibase.version}</version>
</dependency>
Expand All @@ -38,7 +38,6 @@
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
Expand Down Expand Up @@ -70,7 +69,12 @@
<version>${mapstruct.version}</version>
</dependency>

</dependencies>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
</dependency>
</dependencies>

<build>
<plugins>
Expand Down
48 changes: 48 additions & 0 deletions src/main/java/com/project/carsharingapp/model/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.project.carsharingapp.model;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.math.BigDecimal;
import javax.validation.constraints.PositiveOrZero;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;

@Entity
@Getter
@Setter
@SQLDelete(sql = "UPDATE cars SET is_deleted = true WHERE id = ?")
@Where(clause = "is_deleted=false")
@Table(name = "cars")
public class Car {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String model;
@Column(nullable = false)
private String brand;
@PositiveOrZero
private Integer inventory;
@Enumerated(value = EnumType.STRING)
private CarType carType;
@PositiveOrZero
@Column(nullable = false)
private BigDecimal dailyFee;
@Column(nullable = false)
private boolean isDeleted;

public enum CarType {
SEDAN,
SUV,
HATCHBACK,
UNIVERSAL
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.project.carsharingapp.repository;

import com.project.carsharingapp.model.Car;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface CarRepository extends JpaRepository<Car, Long> {
}
8 changes: 4 additions & 4 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
spring.datasource.url=jdbc:mysql://localhost:3306/car_sharing_db?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=gjujlf123$_0
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/car_sharing_db?serverTimezone=UTC
#spring.datasource.username=root
#spring.datasource.password=anton7570857
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

server.servlet.context-path=/api
spring.jpa.hibernate.ddl-auto=validate
Expand Down
46 changes: 46 additions & 0 deletions src/main/resources/db/changelog/changes/create-cars-table.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
databaseChangeLog:
- changeSet:
id: create-cars-table
author: Anton Zhdanov
changes:
- createTable:
tableName: cars
columns:
- column:
name: id
type: bigint
autoIncrement: true
constraints:
primaryKey: true
nullable: false
- column:
name: model
type: varchar(255)
constraints:
nullable: false
- column:
name: brand
type: varchar(255)
constraints:
nullable: false
- column:
name: inventory
type: int
constraints:
nullable: true
- column:
name: car_type
type: varchar(255)
constraints:
nullable: true
- column:
name: daily_fee
type: decimal(38, 2)
constraints:
nullable: false
- column:
name: is_deleted
type: boolean
defaultValueBoolean: false
constraints:
nullable: false
17 changes: 10 additions & 7 deletions src/main/resources/db/changelog/db.changelog-master.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
databaseChangeLog:
- include:
file: db/changelog/changes/create-roles-table.yaml
- include:
file: /db/changelog/changes/create-users-table.yaml
- include:
file: /db/changelog/changes/create-user-roles-table.yaml
databaseChangeLog:
- include:
file: db/changelog/changes/create-cars-table.yaml
- include:
file: db/changelog/changes/create-roles-table.yaml
- include:
file: /db/changelog/changes/create-users-table.yaml
- include:
file: /db/changelog/changes/create-user-roles-table.yaml

8 changes: 4 additions & 4 deletions src/main/resources/liquibase.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
url=jdbc:mysql://localhost:3306/car_sharing_db?serverTimezone=UTC
username=root
password=gjujlf123$_0
changeLogFile=/db.changelog/db.changelog-master.yaml
url=jdbc:mysql://localhost:3306/car_sharing_db?serverTimezone=UTC
username=root
password=gjujlf123$_0
changeLogFile=/db.changelog/db.changelog-master.yaml

0 comments on commit c01e7e2

Please sign in to comment.