一直试图找出为什么一整天,大量阅读和改变,但进展为零。
我有一个数据库模块,其中有一个用 @Entiy 标记的类,如下所示:
@NoArgsConstructor
@AllArgsConstructor
@Getter
@ToString
@Entity
@Table(name = "company")
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "company_id", nullable = false)
private long id;
@Column(name = "company_name", nullable = false)
private String name;
@Column(name = "addr1")
private String adress1;
@Column(name = "addr2")
private String adress2;
@Column(name = "addr3")
private String adress3;
@Column(name = "addr4")
private String adress4;
@Column(name = "postcode")
private String postcode;
}
和一个存储库
@Repository
public interface CompanyRepository extends JpaRepository<Company, Long> {
List<Company> findByName(String companyName);
@Query("SELECT c FROM Company c WHERE LOWER(c.name) LIKE LOWER(concat('%', :name,'%'))")
List<Company> findByNameLike(@Param("name") String name);
}
还有服务,因为我将拥有更多的课程和存储库
@Service
public class DatabaseService {
private final CompanyRepository companyRepository;
@Autowired
public DatabaseService(CompanyRepository companyRepository) {
this.companyRepository = companyRepository;
}
public List<Company> findByName(String companyName) {
return companyRepository.findByName(companyName);
}
public List<Company> findByNameLike(String companyName) {
return companyRepository.findByNameLike(companyName);
}
}
最初,这些是在子包中,但我读到的一种可能的解决方案是将它们全部放在同一个包中,这就是它们现在的样子。
我什至尝试将其全部从模块移到主应用程序中,但同样的问题。
患有阅读障碍,我花了很多时间检查代码,检查每个单词的每个字符,没有大小写或顺序错误,即如果拼写错误,则始终拼写错误。
数据库模型gradle文件
plugins {
java
idea
id("org.springframework.boot") version "3.2.4"
id("io.spring.dependency-management") version "1.1.4"
}
group = "co.uk.myapp"
version = "0.0.1-SNAPSHOT"
val lombokVersion = "1.18.30"
repositories {
mavenCentral()
}
dependencies {
compileOnly("org.projectlombok:lombok:$lombokVersion")
annotationProcessor("org.projectlombok:lombok:$lombokVersion")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation( "org.postgresql:postgresql:42.7.2")
implementation( "com.zaxxer:HikariCP:5.1.0")
testImplementation(platform("org.junit:junit-bom:5.10.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
}
tasks.test {
useJUnitPlatform()
}
主项目gradle文件仅在依赖项上有所不同
dependencies {
implementation(project(":database"))
compileOnly("org.projectlombok:lombok:$lombokVersion")
annotationProcessor("org.projectlombok:lombok:$lombokVersion")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-data-rest")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
implementation("org.springframework.session:spring-session-core")
developmentOnly("org.springframework.boot:spring-boot-devtools")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("io.projectreactor:reactor-test")
}
应用程序.yml
spring:
application:
name: "Management App"
main:
allow-bean-definition-overriding: true
thymeleaf:
cache: false
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5000/management
username: user_man
password:
statement-cache-size: 250
statement-cache-sql-limit: 2048
hikari:
pool-name: MyHikariPool
connection-timeout: 30000
maximum-pool-size: 10
minimum-idle: 5
idle-timeout: 600000
max-lifetime: 1800000
肯定做了什么蠢事,但我看不到!
尝试在主类上添加
@EntityScan("com.entity.package")
。