我为问题的题目道歉。我很清楚这个问题该怎么说。
一点背景知识:我对spring还比较陌生,所以有很多与spring相关的事情完全超出了我的想象。我最近开始了一个新的实践项目,在那里我创建了一个药品库存应用程序。到目前为止,我已经建立了我的模型和存储库。我决定实现一个postgresql数据库。
我在过去做过几个spring项目,如果我没记错的话,您可以硬编码一些为测试目的而创建的模型示例。因此,当您运行spring启动应用程序时,这些示例已经在数据库中了,因此我不必在事后通过pgadmin或sqlshell添加它。
我搞不清楚我到底应该在哪里“硬编码”这些信息,以及它是否是json格式。我想它应该放在inventoryapplication.java的主函数中,因为我的spring引导程序就是在这个函数中运行的,但是我不确定。
以下是我的一些文件,以便了解我的项目流程:
inventoryapplication.java文件
package com.oasis.inventory;
import com.oasis.inventory.model.*;
import com.oasis.inventory.repository.*;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class InventoryApplication {
public static void main(String[] args) {
SpringApplication.run(InventoryApplication.class, args);
}
}
制药.java
package com.oasis.inventory.model;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
@Entity
@Table(name = "pharmaceuticals")
public class Pharmaceutical {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "genericName")
private String genericName;
@Column(name = "brandNames")
private ArrayList<String> brandNames;
@Column(name = "strength" )
private String strength;
@Column(name = "quantity")
private int quantity;
@ManyToMany(fetch = FetchType.LAZY,
cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
})
@JoinTable(name = "pharm_commonuses",
joinColumns = { @JoinColumn(name = "pharmaceutical_id") },
inverseJoinColumns = { @JoinColumn(name = "commonUse_id") })
private Set<CommonUse> commonUses = new HashSet<>();
public Pharmaceutical() {}
public Pharmaceutical(String genericName, ArrayList<String> brandNames, String strength,
int quantity) {
this.genericName = genericName;
this.brandNames = brandNames;
this.strength = strength;
this.quantity = quantity;
}
public String getGenericName() {
return genericName;
}
public void setGenericName(String genericName) {
this.genericName = genericName;
}
public ArrayList<String> getBrandNames() {
return brandNames;
}
public void setBrandNames(ArrayList<String> brandNames) {
this.brandNames = brandNames;
}
public String getStrength() {
return strength;
}
public void setStrength(String strength) {
this.strength = strength;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public long getId() {
return id;
}
@Override
public String toString() {
return "Pharmaceutical [id=" + id + ", genericName=" + genericName + ", brandNames=" + brandNames
+ ", strength=" + strength + ", quantity=" + quantity + ", commonUses=" + commonUses + "]";
}
public Set<CommonUse> getCommonUses() {
return commonUses;
}
}
应用程序属性
server.port=8081
spring.datasource.initialization-mode=always
spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=postgres
spring.datasource.password= sEcReT
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation= true
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.PostgreSQLDialect
# Hibernate ddl auto (create, create-drop, validate, update)
# For prod, change to validate
spring.jpa.hibernate.ddl-auto= update
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.oasis</groupId>
<artifactId>inventory</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>inventory</name>
<description>pharmaceuticals inventory management system</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
暂无答案!
目前还没有任何答案,快来回答吧!