Я новичок в Java Spring Boot и не знаю, как объяснить свою проблему в ближайшее время, возможно, поэтому я не нашел результатов в Google.
Я использую Java Spring Boot для REST Api. Вот результаты, которые я сейчас получаю:
{
"_embedded" : {
"dimensionAttributeValue" : [ {
"chrValue" : "Nopens, Jakob",
"intValue" : null,
"decValue" : null,
"datValue" : null,
"startDate" : null,
"_links" : {
"self" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995"
},
"dimensionAttributeValue" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995"
},
"dimensionAttributeID" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995/dimensionAttributeID"
},
"lstValue" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995/lstValue"
},
"masterDataID" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995/masterDataID"
}
}
},...
Мне бы хотелось получить дополнительную информацию для полей отношений, как в следующем примере:
{
"_embedded" : {
"dimensionAttributeValue" : [ {
"chrValue" : "Nopens, Jakob",
"intValue" : null,
"decValue" : null,
"datValue" : null,
"startDate" : null,
"dimensionAttributeID" : 5 <--- Like thath
"_links" : {
"self" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995"
},
"dimensionAttributeValue" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995"
},
"dimensionAttributeID" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995/dimensionAttributeID"
},
"lstValue" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995/lstValue"
},
"masterDataID" : {
"href" : "http://localhost:8080/dimensionAttributeValues/18995/masterDataID"
}
}
},...
Есть ли простой способ добавить эту информацию, возможно, не в раздел _links
, а как обычный атрибут и без записи контроллера?
Edit:
Часть класса модели, это тот, кто смотрит в поле:
@ManyToOne
@JoinColumn(name = "DimensionAttribute_ID")
private DimensionAttribute dimensionAttribute;
В базе данных хранится только идентификатор DimensionAttribute
.
Редактировать 2:
Таблица DimensionAttributeValue:
| DimensionAttributeValue_ID | ChrValue | ... | DimensionAttribute_ID | ...
----------------------------------------------------------------------------
| 1 | "some" | ... | 5 |
Таблица DimensionAttribute;
| DimensionAttribute_ID | name | ...
-------------------------------------
| 5 | "ok" | ...
Так что приятно, что я получил ссылку на объект. Но мне также нравится атрибут DimensionAttribute_ID
.
Редактировать 3:
DimensionAttributeValue:
@Entity
@Table(name = "DimensionAttributeValue")
public class DimensionAttributeValue {
@Id
@GeneratedValue
@Column(name = "DimensionAttributeValue_ID")
private long dimensionAttributeValueID;
@ManyToOne
@JoinColumn(name = "DimensionAttribute_ID")
private DimensionAttribute dimensionAttributeID;
@ManyToOne
@JoinColumn(name = "MasterData_ID")
private MasterData masterDataID;
@Column (name = "ChrValue")
private String chrValue;
@Column (name = "IntValue")
private String intValue;
@Column (name = "DecValue")
private String decValue;
@Column (name = "DatValue")
private String datValue;
@ManyToOne
@JoinColumn (name = "LstValue")
private DimensionAttributeList lstValue;
@Column (name = "StartDate")
private Date startDate;
public DimensionAttributeValue() {
}
public DimensionAttributeValue(DimensionAttribute dimensionAttributeID, MasterData masterDataID, String chrValue, String intValue, String decValue, String datValue, DimensionAttributeList lstValue, Date startDate) {
this.dimensionAttributeID = dimensionAttributeID;
this.masterDataID = masterDataID;
this.chrValue = chrValue;
this.intValue = intValue;
this.decValue = decValue;
this.datValue = datValue;
this.lstValue = lstValue;
this.startDate = startDate;
}
...
DimensionAttribute:
@Entity
@Table (name = "DimensionAttribute")
public class DimensionAttribute {
@Id
@GeneratedValue
@Column (name = "DimensionAttribute_ID")
private long dimensionAttributeID;
@OneToOne
@JoinColumn(name = "Dimension_ID")
private Dimension dimensionID;
@Column(name = "Name")
private String name;
@Column(name = "Description")
private String description;
@Column(name = "DataType")
private String dataType;
@Column(name = "HasHistory")
private Boolean hasHistory;
@Column(name = "IsDiscrete")
private Boolean isDiscrete;
@Column(name = "HasTrigger")
private Boolean hasTrigger;
@Column(name = "IsMandatory")
private Boolean isMandatory;
@Column(name = "AllowInterface")
private Boolean allowInterface;
@Column(name = "IsReadOnly")
private Boolean isReadOnly;
...