【问题标题】:How to save a Spring Data JPA entity with a composite key如何使用复合键保存 Spring Data JPA 实体
【发布时间】:2015-08-26 10:45:48
【问题描述】:

我有一个@Entity UserVideoRating 类,它使用一个名为UserVideoRatingKey@EmbeddedId 键。

UserVideoRatingKey 实现 Serializable 并覆盖 equals()hashCode() 并实现 null 构造函数。

我有一个名为 UserVideoRatingRepository 的存储库,它实现了 CrudRepository

在我的 Spring 控制器中,为了使用 Hibernate 将实体保存到底层数据库,我使用 UserVideoRating 实例调用 UserVideoRatingRepository.save

一切正常,但我在日志中看到这一行:

Hibernate: insert into user_video_rating (rating, user, video_id) values (?, ?, ?)   

为什么我会得到这些问号?为什么没有保存实际值?我查看了多个 stackoverflow 问题,但无法得到答案。

【问题讨论】:

    标签: hibernate spring-data spring-data-jpa


    【解决方案1】:

    您在日志中看到的是调试代码,仅用于调试目的。如果要检查查询,只需放置“?”具有实际值的符号(字符串应该用单个 cote'' 包围)并在您的数据库命令提示符中运行它。

    【讨论】:

      【解决方案2】:

      为什么没有保存实际值?

      您确定没有保存实际值吗??

      休眠:插入 user_video_rating (rating, user, video_id) 值(?, ?, ?)

      这是您将在所有插入中看到的那种声明。因此,您在日志中看到此语句是没有问题的。 但是,如果您仍然无法将值保存在 DB 中,则说明您没有将正确的对象传递给 save 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-29
        • 2019-09-30
        • 1970-01-01
        • 2019-10-01
        • 1970-01-01
        • 2013-05-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多