首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将表映射到对象属性?

如何将表映射到对象属性?
EN

Stack Overflow用户
提问于 2019-05-07 04:50:28
回答 1查看 36关注 0票数 1

我有一个具有许多相同传感器的设备,因此我需要根据需要映射尽可能多的实体属性,而不是为每个传感器设计一个表。

我如何在Spring Boot中做到这一点?

像这样:

代码语言:javascript
复制
@Entity
@Table(name = "device")
public class Devide {

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

    @Table(name = "sensor")
    private Sensor sensor1; // This is my conceptual problem


    @Table(name = "sensor")
    private Sensor sensor2; // This is my conceptual problem
    .
    .
    .
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-07 21:20:57

由于一个设备可以有多个传感器,并且一个传感器可以是多个设备的一部分,因此您必须在传感器和设备之间创建ManyToMany关系。您可以参考以下映射

代码语言:javascript
复制
@Entity
@Table(name = "Device")
public class Device { 
    // ...

    @ManyToMany(cascade = { CascadeType.ALL })
    @JoinTable(
        name = "Device_Sensor", 
        joinColumns = { @JoinColumn(name = "Device_id") }, 
        inverseJoinColumns = { @JoinColumn(name = "Sensor_id") }
    )
    Set<Sensor> Sensors = new HashSet<>();

    // standard constructor/getters/setters
}

@Entity
@Table(name = "Sensor")
public class Sensor {    
    // ...  

    @ManyToMany(mappedBy = "Sensors")
    private Set<Device> Devices = new HashSet<>();

    // standard constructors/getters/setters   
}

Device_Sensor将作为其他两个表之间的链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56012261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档