【发布时间】:2018-11-19 08:01:04
【问题描述】:
我有一个 Spring-Boot 和 Mongo 应用程序,我试图在其中保留一个对象列表。
我有一个方法可以解析一些 json 数据并创建一个对象列表。然后我调用MongoRepository 的save 方法将其全部保存。
存储库代码如下所示:
public interface TicketRepository extends MongoRepository<Ticket, String> {
}
而Ticket对象POJO是:
@Document
public class Ticket {
@Id
private String id;
private String topic;
private String type;
private long brand;
private long group;
private String priority;
private String status;
private String created_date;
private String created_time;
private String channel;
public Ticket() {
}
//.........getters and setters....
}
现在,某些对象的某些字段也会为空,因为我没有为它们设置任何值。
最后,这就是我保存它们的方式:
@RestController
public class TicketController {
@Autowired
TicketRepository ticketRepository;
@GetMapping("/tickets")
public void saveTicketData() {
List<Ticket> tickets = null;
try {
tickets = getTicketObjectList(ticketJson);
ticketRepository.save(tickets);
} catch (DuplicateKeyException e) {
System.out.println("duplicate found!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这会在保存方法调用时抛出NullPointerExcetion,而无需任何进一步的堆栈跟踪。
可能是什么原因?
【问题讨论】:
-
接口应该用@Repository注解
-
我找到了解决方案。实际上,
TicketRepositorybean 并没有以某种方式自动装配。 -
@roger_that :嘿,我也面临同样的问题。你能告诉我你是怎么解决的吗?
标签: java mongodb spring-boot spring-data-mongodb