From ce3e4627714ba5f0a66a5954218d5e13961b8e6f Mon Sep 17 00:00:00 2001 From: dengqichen Date: Tue, 26 Nov 2024 22:47:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=A2=9E=E5=8A=A0=E4=BA=86=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=EF=BC=88=E5=B0=9D=E8=AF=95=E4=BD=BF=E7=94=A8?= =?UTF-8?q?event=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deploy/backend/entity/UserRole.java | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/entity/UserRole.java b/backend/src/main/java/com/qqchen/deploy/backend/entity/UserRole.java index da1cfe54..c2a230c1 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/entity/UserRole.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/entity/UserRole.java @@ -3,6 +3,7 @@ package com.qqchen.deploy.backend.entity; import com.qqchen.deploy.backend.common.annotation.LogicDelete; import com.qqchen.deploy.backend.common.domain.Entity; import jakarta.persistence.Column; +import jakarta.persistence.FetchType; import jakarta.persistence.GenerationType; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; @@ -18,11 +19,35 @@ import lombok.EqualsAndHashCode; @LogicDelete public class UserRole extends Entity { - @ManyToOne // 多对一关系 - @JoinColumn(name = "user_id") // 外键列 - private User user; // 用户 + @ManyToOne(fetch = FetchType.LAZY) // 添加懒加载 + @JoinColumn(name = "user_id") + private User user; - @ManyToOne // 多对一关系 - @JoinColumn(name = "role_id") // 外键列 - private Role role; // 角色 -} \ No newline at end of file + @ManyToOne(fetch = FetchType.LAZY) // 添加懒加载 + @JoinColumn(name = "role_id") + private Role role; + + // 添加构造方法 + protected UserRole() { + // JPA需要无参构造方法 + } + + public UserRole(User user, Role role) { + this.user = user; + this.role = role; + } + + // 重写equals和hashCode方法,避免无限递归 + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof UserRole)) return false; + UserRole userRole = (UserRole) o; + return getId() != null && getId().equals(userRole.getId()); + } + + @Override + public int hashCode() { + return getClass().hashCode(); + } +} \ No newline at end of file