У меня проблема с отображением свойства в спящем режиме.Я просто хочу отобразить Device (от 1 до многих) на DeviceData (от многих до 1) и наоборот.
Мой вывод должен быть:
Таблица: Device = id, device (номер устройства)),
Таблица: DeviceData = id, device_id (подделать ключ), ...
Все сгенерировано генератором 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);
}
}
Ошибка:
org.hibernate.MappingException: Could not determine type for:
java.util.Map, at table: device_data, for columns:
[org.hibernate.mapping.Column(additionalProperties)] at
org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:456) at
org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:423) at
org.hibernate.mapping.Property.isValid(Property.java:226) at
org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:597)
at org.hibernate.mapping.RootClass.validate(RootClass.java:265) at
org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329)
at
org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:461)
at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:710)
at
io.dropwizard.hibernate.SessionFactoryFactory.buildSessionFactory(SessionFactoryFactory.java:96)
at
io.dropwizard.hibernate.SessionFactoryFactory.build(SessionFactoryFactory.java:49)
at
io.dropwizard.hibernate.SessionFactoryFactory.build(SessionFactoryFactory.java:39)
at
io.dropwizard.hibernate.HibernateBundle.run(HibernateBundle.java:67)
at
io.dropwizard.hibernate.HibernateBundle.run(HibernateBundle.java:19)
at io.dropwizard.setup.Bootstrap.run(Bootstrap.java:200) at
io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:42)
at
io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:87)
at io.dropwizard.cli.Cli.run(Cli.java:78) at
io.dropwizard.Application.run(Application.java:93)