【问题标题】:How to map two tables like primary key and foreign key in JPA Springboot?如何在 JPA Spring Boot 中映射两个表,如主键和外键?
【发布时间】:2020-09-28 05:27:53
【问题描述】:

我有这两个表,想映射 userName 字段,这样我就可以只查询特定用户的消息。我该怎么做?

@Entity
public class User {
    
    
    @Id
    private String userName;
}


@Entity(name = "message")
public class Message {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private UUID messageID;
    String message;
    String userName;
    Long timeStamp;
    boolean isSent;

}
    

应该在用户名之间进行映射。

【问题讨论】:

    标签: spring-boot hibernate jpa spring-data-jpa persistence


    【解决方案1】:

    只需在您当前的实体类中添加您的另一个实体,jpa 会使用主键自动映射您的实体类。

    @Entity
    public class User { 
        
        @Id
        private String userName;
        private Message message;
    
    }
    

    【讨论】:

    【解决方案2】:

    您需要根据您使用@JoinColumn 的关系添加@ManyToOne@OneToMany 映射,如下所示。

    @Entity
    public class User {    
        
        @Id
        private String userName;
       
        @OneToMany
        @JoinColumn(name = "userName", referencedColumnName = "userName")
        List<Message> messages;
    }
    
    @Entity(name = "message")
    public class Message {
    
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private UUID messageID;
        String message;
        String userName;
        Long timeStamp;
        boolean isSent;
    }
    

    【讨论】:

    猜你喜欢
    • 2022-01-16
    • 2021-09-19
    • 2017-01-03
    • 2021-11-18
    • 2022-01-16
    • 1970-01-01
    • 2015-02-03
    • 2019-04-22
    • 2020-04-28
    相关资源
    最近更新 更多