PAN-7 Set up the findAll method in the DefinitionDTO
This commit is contained in:
@@ -21,6 +21,8 @@ dependencies {
|
||||
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.5.RELEASE'
|
||||
compile group: 'org.springframework', name: 'spring-aspects', version: '5.1.5.RELEASE'
|
||||
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.4.1.Final'
|
||||
compile group: 'com.vladmihalcea', name: 'hibernate-types-52', version: '2.4.1'
|
||||
|
||||
|
||||
compile fileTree(dir: 'lib', include: '**/*.jar')
|
||||
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package edu.msudenver.tsp.persistence.controller;
|
||||
|
||||
import edu.msudenver.tsp.persistence.dto.AccountsDto;
|
||||
import edu.msudenver.tsp.persistence.repository.AccountsRepository;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@RestController
|
||||
@AllArgsConstructor
|
||||
@RequestMapping("/accounts")
|
||||
public class AccountController {
|
||||
private final AccountsRepository accountsRepository;
|
||||
|
||||
@GetMapping("/")
|
||||
public @ResponseBody Iterable<AccountsDto> getListOfAccounts() {
|
||||
return accountsRepository.findAll();
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public @ResponseBody
|
||||
Optional<AccountsDto> getAccountById(@PathVariable("id") final Integer id) {
|
||||
return accountsRepository.findById(id);
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package edu.msudenver.tsp.persistence.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.EntityListeners;
|
||||
import javax.persistence.Temporal;
|
||||
import javax.persistence.TemporalType;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Entity(name = "accounts")
|
||||
@EntityListeners(AuditingEntityListener.class)
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AccountsDto extends BaseDto implements Serializable {
|
||||
@Size(max = 50) private String username;
|
||||
@Size(max = 256) private String password;
|
||||
@NotNull @JsonProperty("administrator_status") private boolean administratorStatus;
|
||||
@Temporal(TemporalType.DATE) @JsonProperty("last_login") private Date lastLogin;
|
||||
|
||||
public static final long serialVersionUID = 7095627971593953734L;
|
||||
}
|
||||
+17
-1
@@ -1,9 +1,17 @@
|
||||
package edu.msudenver.tsp.persistence.dto;
|
||||
|
||||
import com.vladmihalcea.hibernate.type.array.IntArrayType;
|
||||
import com.vladmihalcea.hibernate.type.array.StringArrayType;
|
||||
import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
|
||||
import com.vladmihalcea.hibernate.type.json.JsonNodeBinaryType;
|
||||
import com.vladmihalcea.hibernate.type.json.JsonNodeStringType;
|
||||
import com.vladmihalcea.hibernate.type.json.JsonStringType;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.annotations.TypeDef;
|
||||
import org.hibernate.annotations.TypeDefs;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@@ -12,10 +20,18 @@ import javax.persistence.*;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
@MappedSuperclass
|
||||
@TypeDefs({
|
||||
@TypeDef(name = "string-array", typeClass = StringArrayType.class),
|
||||
@TypeDef(name = "int-array", typeClass = IntArrayType.class),
|
||||
@TypeDef(name = "json", typeClass = JsonStringType.class),
|
||||
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class),
|
||||
@TypeDef(name = "jsonb-node", typeClass = JsonNodeBinaryType.class),
|
||||
@TypeDef(name = "json-node", typeClass = JsonNodeStringType.class),
|
||||
})
|
||||
public class BaseDto {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
Integer id;
|
||||
@Version
|
||||
int version;
|
||||
Integer version;
|
||||
}
|
||||
|
||||
+12
-1
@@ -1,6 +1,17 @@
|
||||
package edu.msudenver.tsp.persistence.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
public class Definition implements Serializable {
|
||||
private List<String> definitions;
|
||||
|
||||
public static final long serialVersionUID = -2208496232532214840L;
|
||||
}
|
||||
|
||||
+5
-3
@@ -2,8 +2,10 @@ package edu.msudenver.tsp.persistence.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.annotations.Type;
|
||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.EntityListeners;
|
||||
import javax.validation.constraints.Size;
|
||||
@@ -14,9 +16,9 @@ import java.io.Serializable;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DefinitionDto extends BaseDto implements Serializable {
|
||||
@Size(min = 1, max = 200, message = "Must be between 1 and 200 characters") String name;
|
||||
Definition definition;
|
||||
Notation notation;
|
||||
@Size(min = 1, max = 200, message = "Must be between 1 and 200 characters") private String name;
|
||||
@Type(type = "jsonb") @Column(columnDefinition = "jsonb") private Definition definition;
|
||||
@Type(type = "jsonb") @Column(columnDefinition = "jsonb") private Notation notation;
|
||||
|
||||
public static final long serialVersionUID = -5314619286352932857L;
|
||||
}
|
||||
|
||||
+11
-1
@@ -1,6 +1,16 @@
|
||||
package edu.msudenver.tsp.persistence.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
public class Notation implements Serializable {
|
||||
private List<String> notations;
|
||||
public static final long serialVersionUID = 2301438318932336121L;
|
||||
}
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package edu.msudenver.tsp.persistence.repository;
|
||||
|
||||
import edu.msudenver.tsp.persistence.dto.AccountsDto;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface AccountsRepository extends JpaRepository<AccountsDto, Integer> {
|
||||
}
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
package edu.msudenver.tsp.persistence.repository;
|
||||
|
||||
|
||||
import edu.msudenver.tsp.persistence.dto.Definition;
|
||||
import edu.msudenver.tsp.persistence.dto.DefinitionDto;
|
||||
import edu.msudenver.tsp.persistence.dto.Notation;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
@@ -12,7 +11,7 @@ public interface DefinitionRepository extends JpaRepository<DefinitionDto, Integ
|
||||
|
||||
DefinitionDto findByName(final String name);
|
||||
|
||||
DefinitionDto findByDefinition(final Definition definition);
|
||||
DefinitionDto findByDefinition(final String definition);
|
||||
|
||||
DefinitionDto findByNotation(final Notation notation);
|
||||
}
|
||||
|
||||
@@ -9,4 +9,5 @@ spring.jpa.show-sql = true
|
||||
spring.datasource.tomcat.test-while-idle=true
|
||||
spring.datasource.tomcat.validation-query=SELECT 1
|
||||
logging.level.org.springframework.web=DEBUG
|
||||
spring.datasource.tomcat.max-active=1
|
||||
spring.datasource.tomcat.max-active=1
|
||||
server.port=8090
|
||||
Reference in New Issue
Block a user