gpt4 book ai didi

java - CrudRepository 上的 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 06:43:33 25 4
gpt4 key购买 nike

我已经创建了一个存储库,但是当我调用我的存储库时,它每次都会给出 NullPointerException。有人可以帮我找出原因吗?

我的存储库

@Repository
public interface WorkflowObjectRepository extends CrudRepository<WorkflowObject, String> {

@Override
WorkflowObject findOne(String id);

@Override
void delete(WorkflowObject workflowObject);

@Override
void delete(String id);

@Override
WorkflowObject save(WorkflowObject workflowObject);

}

我的对象

@Data
@Entity
@Table(name = "workflowobject")
public class WorkflowObject {

@GeneratedValue
@Column(name="id")
private String id;

@Column(name = "state_name")
private String stateName;

}

我的测试

public class Test {

@Autowired
static WorkflowObjectRepository subject;

public static void main(String[] args) {

final WorkflowObject obj = new WorkflowObject();
obj.setId("maha");
obj.setStateName("test");
subject.findOne("maha");
}

}

应用程序属性

spring.datasource.url=jdbc:postgresql://localhost:5432/vtr?
autoReconnect=true
spring.datasource.username=vtr
spring.datasource.password=vtr

最佳答案

问题是您正在尝试 Autowiring 静态数据成员

@Autowired
static WorkflowObjectRepository subject;

在你的情况下发生的情况是 static 在 bean 之前被初始化,所以你在 null 上 Autowiring ,只需删除 static 并将其作为实例变量处理。

存储库是单例的,因此没有必要将它们设为静态

关于java - CrudRepository 上的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44019822/

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