我是Spring
的新手,我正在尝试创建一个对象
并将其添加到我的数据库中,然后从中获取值。据我了解,我不应该添加任何额外的行,并且 findAll
应该返回一个看起来正确的 String
结果。
但我得到的结果是这样的:
[model.Orders@4a163575, model.Orders@7ecec90d]
我还了解到,我不应该向 Spring
添加 get/set
方法,因为它们应该自动生成,但是当我尝试强制转换 model.Orders@4a163575
转换为 Object
并执行 get
方法 它告诉我没有 get
方法。
这是我的对象
:
@Data
@Entity
public class Orders {
public Orders(String orderName) {
this.orderName = orderName;
}
public Orders() {
}
@Id
@GeneratedValue
private Long id;
private String orderName;
}
然后是findAll
方法:
@Repository
public class OrderDao {
public List<Orders> findAll(){
return em.createQuery("select p from Orders p", Orders.class).getResultList();
}
}
以及我在哪里启动这一切:
public static void main(String[] args) {
ConfigurableApplicationContext ctx =
new AnnotationConfigApplicationContext(DbConfig.class);
OrderDao dao = ctx.getBean(OrderDao.class);
dao.save(new Orders("order1"));
dao.save(new Orders("order2"));
System.out.println(dao.findAll());
}
据我所知,我认为 @Data
注释无法正常工作,因为没有 toString
也没有 getters/setter
。
我使用以下行导入 @Data
注释:import lombok.Data;
。
我在这里做错了什么。
最佳答案
您需要安装lombok插件才能生成它们
您可以引用这篇文章如何在IntellijIdea中安装lombok:
Lombok annotations do not compile under Intellij idea
另请添加启用注释处理
关于java - Spring JPA 数据存储库没有发挥应有的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53291221/