java - 我如何使用 thymeleaf 以一种形式显示 2 个实体的值

标签 java hibernate spring-boot thymeleaf

我正在使用 Spring Boot、Thymeleaf、Hibernate 和 JPA 来开发此应用程序。我已经映射了需要从中检索数据的两个实体之间的关系,并且想知道如何在页面上显示两个表中的数据

有人可以告诉我如何使用 Thymeleaf 以一种形式显示 2 个实体的值吗?我找不到任何教程,提前致谢

@Getter
@Setter
@NoArgsConstructor

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

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    @OneToOne(cascade = CascadeType.ALL)
    private UserDetails userDetails;

    public User(String name) {
        this.name = name;
    }
}
@Data
@NoArgsConstructor

@Entity
@Table(name = "user_details")
public class UserDetails {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String email;

    public UserDetails(String email) {
        this.email = email;
    }
}

最佳答案

A.如果两个表彼此不相关,那么以下解决方案可能适合您。

  1. 创建 One Model 类。

    public class UserAndUsersDetails {
    
        private String name;
    
        private String email;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    

    }

2.然后调用数据库并获取结果

User user = userRepository.get(id);
UserDetails userDetails = userDetailsRepository.get(id);

3.在userAndUsersDetails类中设置数据

UserAndUsersDetails userAndUsersDetails = new UserAndUsersDetails()
userAndUsersDetails.setName(user.getName());
userAndUsersDetails.setEmail(userDetails.getEmail());

4.将 UserAndUsersDetails 类对象发送到 thymleaf。

B.如果两个表相互关联,那么以下是最佳解决方案。

1.从user中扩展userDetails并克隆它,并且不要将id放入UserDetails类中

@Data
@NoArgsConstructor

@Entity
@Table(name = "user_details")

public class UserDetails extends User implements Cloneable {
private String email;

    public UserDetails(String email) {
        this.email = email;
    }

public UserDetails clone() {
UserDetails userDetails = new UserDetails();
userDetails.setName(this.getName());
}

}
  • 获取 userDetils 结果
  • 3.将其对象发送给thymelef。

    关于java - 我如何使用 thymeleaf 以一种形式显示 2 个实体的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60412157/

    相关文章:

    java - 动态控制@Formula 列的惰性/急切加载

    java - 如何在 session 中存储检索对象并在之后访问它?

    Spring Boot急切地初始化一些bean

    java - JSON 解析错误 : Already had POJO for id

    java - 模型映射器 - 使用自定义方法

    java - 我如何从 Activity 中更改 fragment 的 TextView 文本

    java - 使用来自 java 的 windows "net use"命令和 win32 api

    java - 解决 Android Studio 2.1.2 中未注册错误 URI

    java - 使用 TermQuery 的 Lucene 搜索仅适用于 WhitespaceAnalyzer,但不适用于 StandardAnalyzer

    java - Hibernate实体没有被持久化,但可以创建表和查询