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

Spring和JPA 2.0-通过OneToOne实现单值主键

曾骁
2023-03-14

我有一个简单的表(ActivityLog),我希望它有一个PK,也是另一个表(用户)的FK。

@Entity
public class User {
 @Id
 private Long id;

 // other stuff
}

@Entity
public class ActivityLog {
 @Id
 @OneToOne(optional = false)
 @JoinColumn(name="user_id", referencedColumnName="id")
 private User user;

 // other stuff
}
Caused by: java.lang.IllegalArgumentException: This class [class com.example.ActivityLog] does not define an IdClass
at org.hibernate.metamodel.internal.AbstractIdentifiableType.getIdClassAttributes(AbstractIdentifiableType.java:183)
at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation$IdMetadata.<init>(JpaMetamodelEntityInformation.java:253)
 @IdClass(Long.class)

我的情况和提到的维基书上的不同吗?

这里是Spring的错吗?(正如这个问题所建议的那样?(没有公认的答案))。

共有1个答案

陆信瑞
2023-03-14

这应该有所帮助:

@Entity
public class ActivityLog {

   @Id
   @Column(name = "user_id")
   private Long id;

   @OneToOne(optional = false)
   @JoinColumn(name="user_id", referencedColumnName="id")
   private User user;

   // other stuff
}

顺便说一句。我想,每个用户需要更多的日志,所以无论如何都可能需要一些额外的(生成的)id...

 类似资料:
  • 本文向大家介绍Spring Boot通过Junit实现单元测试过程解析,包括了Spring Boot通过Junit实现单元测试过程解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring Boot通过Junit实现单元测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.需要在pom.xml中引入spring-boo

  • 我正在创建一个具有自己的登录/注册视图/页面的应用程序/网页。 我的后端服务是Java的,使用Spring Security来管理用户的身份验证。 基本目标是(从应用程序):- 通过API注册用户。(注册页面已在客户端) 显示登录页面(已在客户端)。 点击api以使用提供的用户名和密码对用户进行身份验证。(在JSON POST请求中提供) 成功后,返回一个cookie用于下一个操作/api调用以验

  • 我想问你们一些关于阿帕奇·Kafka和压缩主题的问题。我们想提供一些Kafka压缩主题的PII数据。我们想通过墓碑删除这个主题的数据。目前有多个问题需要验证我们的假设: 有没有其他公司像KIP-354那样通过压缩主题和墓碑生成来满足Kafka的gdpr要求(忘记的权利)https://cwiki.apache.org/confluence/display/KAFKA/KIP-354:添加最大日志压

  • 我们想通过spring-kafka列出所有Kafka主题,以获得类似于kafka命令的结果: 在下面的服务中运行 getTopics() 方法时,我们会得到 配置: 服务: Kafka已经启动并运行,我们可以成功地从应用程序向主题发送消息。

  • 本文向大家介绍通过 Django Pagination 实现简单分页功能,包括了通过 Django Pagination 实现简单分页功能的使用技巧和注意事项,需要的朋友参考一下 作者:HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 当博客上发布的文章越来越多时,通常需要进行分页显示,以免所有的文章都堆积在一个页面,影响用户体验。 Dj

  • 我有一个这样的实体: 多谢了,安德里亚