当前位置: 首页 > 知识库问答 >
问题:

返回一个空列表@OneTo很多SpringBoot-Hibernate

漆雕洋
2023-03-14

我在Hibernate状态下使用关系时得到空。这是我的代码用户实体

@Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long userId;


    @OneToMany(mappedBy="user",targetEntity=LoginHistory.class, fetch=FetchType.LAZY,cascade = CascadeType.ALL)
    private List<LoginHistory> loginHistory = new ArrayList<LoginHistory>();

登录历史实体

@Entity
@Table(name = "login_history")
public class LoginHistory {

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private long id;

    @ManyToOne(cascade = CascadeType.DETACH)
    @JoinColumn(name="userId",referencedColumnName="id")
    private User user;

要获取登录历史详细信息,请执行以下操作:

@Override
    public List<LoginHistory> getLoginHistory(User user) {
        List<LoginHistory> lst = user.getLoginHistory();
        return lst;
    }

我得到一张空名单。请帮忙

共有1个答案

双弘益
2023-03-14

当您访问一个延迟加载的实体时,它按设计工作。如果您继续保持延迟加载,请使用下面类似的代码获取登录历史记录。

 User user = getByKey(id);
            if(user!=null){
                Hibernate.initialize(user.getUserProfiles());
            }
 类似资料:
  • 如果我跑: 我会得到一张空名单。我猜它与名称空间有关,但我不知道如何修复它。

  • 问题内容: 我在Android中有一个客户端应用程序,用于将文件发送到服务器。服务器使用Apache Commons FileUpload API来解析表单数据值。 该发送该请求: 服务器代码: 问题就在这里。返回的列表为空,我无法获取表单数据值。 问题答案: 如果您已经(隐式)预先解析了请求正文,则此位置将为空。HTTP请求正文只能被读取/解析 一次 (因为客户端仅发送一次,并且不会多次发送)。

  • 我对Spring编程是新手。我正在用Reactor/Webflux项目测试反应式编程。 数据库注册通过POST工作得很好。 我的模型: 我的存储库 我的用户服务

  • 我正在用jpa处理spring boot,我尝试使用onetomany,由于某种原因,当我尝试在postman上发送请求时,它创建了我的父对象,但没有使用子外键,因此我得到了null。 还有一件事:有一次我玩了我的代码,不知怎么的,我让它工作了,但它只成功了一次,现在它不再工作了。我试图在网上学习很多教程,但没有一个帮助我解决这个问题。

  • 我试图使用JPA findAll获取所有记录。如果我在终端中运行相同的查询,结果会得到一些行,但不是通过JPA。我在stackoverflow上尝试了其他答案,但都不起作用。我尝试添加公共getter和setter,尽管我假设这是通过注释完成的。 型号类别: 服务等级: 编辑:添加存储库代码:

  • 所以,我的问题在于title-crudepository方法返回一个空列表。我重写了Crud的方法,因为它返回的是iterable而不是list。 我尝试使用而不是(当时我没有覆盖方法),但得到了相同的结果。 我的代码: Event.java 城市JAVA 事件Controller.java 事件条目。html 我正在使用一个嵌入式H2数据库,其中有一个用于将数据填充到数据库中的文件(我没有文件,