java - 使用附加参数 hibernate 多对多

标签 java hibernate many-to-many

美好的一天!我有两个类“用户”和“成就”。用户有很多成就,并且成就可以被很多用户获得。
我发现的任何示例都使用只有两列的 user_achievement 表 - user_id 和 Achievement_id。但我想在此表上存储一些额外的参数 - 例如,用户获得成就的日期。
如何使用 hibernate-xml 配置来做到这一点?

最佳答案

您可以添加另一个实体AchievementInstance,然后您就可以在User和该实体之间建立OneToMany关系。 AchievementInstance 具有日期和所需的任何其他附加字段,以及与 Achievement 实体的 ManyToOne 关系。

@Entity
class User {
 @OneToMany
 List<AchievementInstance> achievements;
}

@Entity
class AchievementInstance {
 @ManyToOne
 Achievement achievement;
 ...
 Date date;
}

@Entity
class Achievement {
 ...
}

关于java - 使用附加参数 hibernate 多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27389603/

相关文章:

java - Spring Integration DSL 中的路由

java - 从端点调用时,Spring Boot 获取 UTC+1 而不是 GMT

.net - Linq To Sql 多对多连接表

java - NoSuchMethodError : org. hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;

java - 将 MariaDB 与 Hibernate Filter 结合使用时,如何获取 AssertionFailure 'Table not found' 的根本原因?

java - 从 Hibernate 中的集合中删除项目而不加载实体

hibernate - JPA:传递给持久化的分离实体:嵌套异常是 org.hibernate.PersistentObjectException

java - jOOQ - 支持 JSR310

java.io.IOException :Cannot run program "mysql":CreateProcess error=2, 系统找不到指定的文件

java - 以 Base64 和 utf-8 解码电子邮件主题字符串