Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在所有人的列表中显示用户朋友?_Java_Spring_Hibernate_Jsp - Fatal编程技术网

Java 如何在所有人的列表中显示用户朋友?

Java 如何在所有人的列表中显示用户朋友?,java,spring,hibernate,jsp,Java,Spring,Hibernate,Jsp,好的,编辑问题 我正在使用spring、hibernate和JSP SQL架构: CREATE TABLE public.users ( uuid VARCHAR(36) PRIMARY KEY NOT NULL, username VARCHAR(45) UNIQUE NOT NULL, first_name VARCHAR(255)

好的,编辑问题

我正在使用spring、hibernate和JSP

SQL架构:

CREATE TABLE public.users
(
  uuid              VARCHAR(36) PRIMARY KEY                     NOT NULL,
  username          VARCHAR(45) UNIQUE                          NOT NULL,
  first_name        VARCHAR(255)                                NOT NULL,
  last_name         VARCHAR(255),
  middle_name       VARCHAR(255)
);



CREATE TABLE public.user_friends
(
  uuid          VARCHAR(36) PRIMARY KEY,
  user_uuid     VARCHAR(36) REFERENCES public.users (uuid) NOT NULL,
  friend_uuid   VARCHAR(36) REFERENCES public.users (uuid) NOT NULL,
  friendAddDate TIMESTAMP                                  NOT NULL,
  friendTypeId  INT                                        NOT NULL,
  CONSTRAINT friend_unique UNIQUE (user_uuid, friend_uuid)
);
Java实体:

@Entity
@Table(name = "users")
public class User implements Serializable {

    @Id
    @GeneratedValue(generator = "system-uuid", strategy = GenerationType.IDENTITY)
    @GenericGenerator(name = "system-uuid", strategy = "uuid2")
    @Column(name = "uuid", unique = true)
    protected String uuid;

    @Column(name = "username")
    protected String username;

    @JsonIgnore
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
    private Set<UserFriend> userFriends = new HashSet<>();
}

@Entity
@Table(name = "user_friends")
@AssociationOverrides({
        @AssociationOverride(name = "user",
                joinColumns = @JoinColumn(name = "user_uuid")),
        @AssociationOverride(name = "friendUser",
                joinColumns = @JoinColumn(name = "friend_uuid")) })
public class UserFriend implements Serializable {
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid2")
    @Column(name = "uuid", unique = true)
    protected String uuid;

    @ManyToOne
    @JoinColumn(name="user_uuid")
    private User user;

    @ManyToOne
    @JoinColumn(name="friend_uuid")
    private User friendUser;

    @Column(name = "friendadddate")
    protected Date friendAddDate;

    @Column(name = "friendtypeid")
    protected int friendTypeId;
}
@实体
@表(name=“users”)
公共类用户实现可序列化{
@身份证
@GeneratedValue(generator=“system uuid”,strategy=GenerationType.IDENTITY)
@GenericGenerator(name=“system uuid”,strategy=“uuid2”)
@列(name=“uuid”,unique=true)
受保护字符串uuid;
@列(name=“username”)
受保护的字符串用户名;
@杰索尼奥雷
@OneToMany(fetch=FetchType.LAZY,mappedBy=“user”,cascade=CascadeType.ALL,orphan=true)
private Set userFriends=new HashSet();
}
@实体
@表(name=“user\u friends”)
@联想超越({
@AssociationOverride(name=“user”,
joinColumns=@JoinColumn(name=“user_uuid”),
@AssociationOverride(name=“friendUser”,
joinColumns=@JoinColumn(name=“friend_uuid”))}
公共类UserFriend实现了可序列化{
@身份证
@GeneratedValue(generator=“系统uuid”)
@GenericGenerator(name=“system uuid”,strategy=“uuid2”)
@列(name=“uuid”,unique=true)
受保护字符串uuid;
@许多酮
@JoinColumn(name=“user\u uuid”)
私人用户;
@许多酮
@JoinColumn(name=“friend\u uuid”)
私人用户友好用户;
@列(name=“friendadddate”)
保护日期和添加日期;
@列(name=“friendtypeid”)
受保护的int-friendTypeId;
}
现在我正在制作JSP页面,在这里我将显示系统的所有用户。所以我有两套: 集合-系统的所有用户 和 Set-当前登录用户的好友

我想在JSP上显示所有用户,并标记登录用户的好友。
我想问:做这件事的最佳实践是什么?

您需要在后端设置某种标志,该标志将在jsp页面中用于确定当前登录用户的好友。如果该标志存在,请标记用户,否则您将正常进行。

是否需要有关数据库架构的帮助?ORM?数据结构?您的问题非常令人困惑。这是一个非常广泛的问题,基本上是可以讨论的,您需要重写它,以显示您的代码,说明您目前是如何做的,然后社区可以为您提供更好的修复/解决方案。某种标志,确实在哪里?在模型中?在数据库中?或者你建议我为页面创建新模型?在持久化的POJO(bean)中添加一个标志字段。在jsp页面上检查它。所以,您希望我在类用户和for循环中创建新字段isFriend,然后再将用户发送到jsp检查所有系统的每个用户都是登录用户的朋友吗?这就是你的解决方案?我可以在没有扩展字段的情况下在JSP上进行for循环,但我认为这对于高负载来说是一个糟糕的解决方案。您必须在某个地方这样做。或者如果你找到了其他解决方案,请在这里提及。我没有找到其他解决方案。。。仅循环周期