我有两个实体/表
为了简洁,删除了一些列
组别:
@Entity
@Table(name = "groups", indexes = {@Index(name = "groups_index", columnList = "id", unique = true)})
public class Group implements Serializable {
@OneToMany(targetEntity = UserInGroup.class, mappedBy = "group")
private Set<UserInGroup> userInGroups = new HashSet<>();
}
@Entity
@Table(name = "user_in_group", indexes = {@Index(name = "user_in_group_index", columnList = "group_id,user_id", unique = true)})
public class UserInGroup implements Serializable {
@ManyToOne
@JoinColumn(name = "group_id", referencedColumnName = "id")
private Group group;
}
基于这个答案,我添加了以下内容
java prettyprint-override">UserInGroup userInGroup = new UserInGroup().setGroup(group).setUser(creatorUser).setGroupRoleEnum(GroupRoleEnum.ADMIN);
group.addUserInGroup(userInGroup);
groupRepository.save(group);
public void addUserInGroup(UserInGroup userInGroup) {
if (userInGroups == null) {
userInGroups = new ArrayList<>();
}
userInGroups.add(userInGroup);
userInGroup.setGroup(this);
}
但是表UserInGroup仍然没有创建任何条目。
在您的代码中,在双向关系中,您使用mappedby
属性将group
实体标记为关系的所属方。因此,如果您使用GroupRepository
实例来传播Group
和UseringRouproup
值,那么一切都会很好。也就是说,不是在UseringRoupRepository
实例上调用save,而是使用GroupRepository
实例来保存值,并且应该自动创建外键关联。使用AddUseringRoup(userInGroup)
和RemoveUseringRoup()
方法向set in Group类添加或移除值。
groupRepository.save(group);
有关更多信息的相关帖子:Springboot在oneTOMany关系中添加问题
问题内容: 我有以下实体: 球队 } 和 USER_TEAM_ROLE 现在,当使用{UTR1,UTR3}更新包含例如Team.userTeamRoles = {UTR1,UTR2}的Team实体时,我希望删除UTR2。但是我现在的方法是,旧列表保持不变,并且只将UTR3添加到列表中。 这是我目前的做法: 我认为通过执行该列表将被重置,并且由于级联,先前的列表将被删除。 任何帮助表示赞赏。谢谢 问
未创建我的exchange和dlq。我在下面的YML中有以下内容。我确实创建了一个匿名队列,但也没有发布消息。任何想法。
我已经使用Hibernate将Java对象映射到PostgreSQL数据库。UserDetails类是用来添加用户的实体类,它包含一个名为Address的嵌入对象。 userdetails.java 生成的SQL查询如下所示,它显示列的添加顺序与声明列的顺序不同。 在Hibernate中添加哪些列有什么规则吗?
我已经创建了纸张和Mcq问题之间的映射如下。 } 当我更新纸质实体时,它会删除所有MCQ。 SQL输出:
问题内容: 我想定义具有2个TIMESTAMP字段的表,如下所示: 如何避免错误: 重点是保持表架构中和的所需行为。 问题答案: 猜猜这是一个老帖子,但实际上我想mysql在其最新版本中支持2 TIMESTAMP mysql 5.6.25,这就是我目前使用的时间。
Mysql不允许在同一数据库表中有两个自动更新时间戳列。但是,许多人喜欢为他们的表“创建”和“更新”列,因为这种信息很有用,所以必须有一些解决方法。根据我收集的内容,一列必须是日期时间,另一列必须是时间戳。datetime 列可以用作创建的列,当默认为 null 时,使用触发器插入时,它将自动采用当前时间戳值。时间戳列可以用作更新的列,并且可以配置为按照mysql文档的描述自动更新。这两个页面对于