我在休眠中映射屬性時遇到問題。我只想將 Device(1 對多)映射到 DeviceData(多對 1),反之亦然。我的輸出應該是:表:device=id,device(一個設備號),表:DeviceData = id, device_id (forgein key), ...一切都由 json2ojo 生成器生成。@Entity(name = "Device")@Table(name = "device_devices")public class Device { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @JsonProperty private Long id; @JsonProperty("device") @Column(unique = true) private String device; @JsonIgnore private Map<String, Object> additionalProperties = new HashMap<String, Object>(); @OneToMany(fetch = FetchType.LAZY, mappedBy = "device", cascade = CascadeType.ALL, orphanRemoval = true, targetEntity = DeviceData.class) private List<DeviceData> deviceData = new ArrayList<>();...}@Entity(name = "DeviceData")@Table(name = "device_data")public class DeviceData { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @JsonProperty private Long id;... @JsonIgnore @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = Device.class) @JoinColumn(name = "device_id", referencedColumnName = "id") private Device device; @JsonIgnore private Map<String, Object> additionalProperties = new HashMap<String, Object>(); @JsonProperty("id") public Long getId(){ return id; } @JsonIgnore public Device getDevice(){ return device; } @JsonIgnore public void setDevice(Device device){ this.device = device; }...... @JsonAnyGetter public Map<String, Object> getAdditionalProperties() { return this.additionalProperties; } @JsonAnySetter public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); }}
1 回答

BIG陽
TA貢獻1859條經驗 獲得超6個贊
默認情況下,JPA 會嘗試保留類的所有屬性,但您可以使用注釋@Entity忽略某些屬性。@Transient在您的情況下,如果您不想additionalProperties在兩個類中都保留字段,則應將它們標記為@Transient:
@JsonIgnore
@Transient
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
添加回答
舉報
0/150
提交
取消