gpt4 book ai didi

java - 如何使2个不相关的实体(两个存储库)同时在一个项目中运行?是否可以?

转载 作者:行者123 更新时间:2023-11-29 16:59:59 24 4
gpt4 key购买 nike

我正在尝试在一个项目中创建 2 个实体(不相关)。我正在使用 Java springboot 连接到 mysql 数据库。那么我能做的最好的办法是什么?因为我尝试创建 2 个存储库,但只成功了其中 1 个。另一个给我一个错误。它给了我错误,即使当我在 mysql 工作台中运行查询时实际上很好

在我的存储库(AccountRepository.java)中,它不起作用,我放置了如下内容:

public interface AccountRepository extends CrudRepository<Accounts, Integer> {

@Query("SELECT applicationPassword FROM Accounts where applicationName = 'myApp'")
String findPasswordApp();
}

在实体文件(Accounts.java)中,我放了这样的内容

@Entity
public class Accounts {
@Id
private Integer accountID;
private String applicationName;
private String applicationPassword;
public void setAccountID(Integer accountID) {
this.accountID = accountID;
}

public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}

public void setApplicationPassword(String applicationPassword) {
this.applicationPassword = applicationPassword;
}

public Integer getAccountID() {
return accountID;
}

public String getApplicationName() {
return applicationName;
}

public String getApplicationPassword() {
return applicationPassword;
}
}

但这给了我错误。我想从这个实体得到的是,我可以检查数据库中的值(读取),我已经将其手动放入 mysql 工作台中。

这是我在 mysl Workbench 中首先执行的表查询

CREATE TABLE Accounts (
accountID int,
applicationName varchar(255),
applicationPassword varchar(255)
);

这也是我成功将数据插入其中的时间:

INSERT INTO Accounts (accountID, applicationName, applicationPassword)
VALUES ('1', 'myApp', 'password'));

我的代码有什么问题吗?请帮忙

编辑:我尝试用 try catch 来掩盖这一行 'String password = accountRepository.findPasswordApp(); ' 这给了我像 'java.lang.NullPointerException' 这样的异常

这是我的全部异常(exception): 在 org.eclipse.paho.client.mqttv3.internal.CommsCallback.deliverMessage(CommsCallback.java:499) 在 org.eclipse.paho.client.mqttv3.internal.CommsCallback.handleMessage(CommsCallback.java:402) 在 org.eclipse.paho.client.mqttv3.internal.CommsCallback.run(CommsCallback.java:206) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 在java.util.concurrent.ScheduledThreadPoolExecutor $ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) '

最佳答案

我很确定您的存储库缺少注释或不在正在扫描的包中。我的项目有 10 个存储库,所以这绝对不是问题,而且 @Query 注释中的 HQL 似乎还不错。

这两个没有理由不能一起工作,所以我猜测您的存储库抛出错误的 @Autowired 字段在运行时为空。您可能只是忘记了注释。您在 AccountRepository 之上没有 @Repository 注释吗?您的主类或配置中的 @ComponentScan 是否没有包含它的包?

如果缺少其中任何一个,那就是你的问题了。您能用异常(exception)的全文来编辑它吗?

关于java - 如何使2个不相关的实体(两个存储库)同时在一个项目中运行?是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52349431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com