Skip to content
This repository was archived by the owner on Aug 1, 2025. It is now read-only.

Commit 0c6952b

Browse files
committed
[BI-2304] - preserve list order without changing API
1 parent ea85b8c commit 0c6952b

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

src/main/java/org/brapi/test/BrAPITestServer/model/entity/core/ListEntity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class ListEntity extends BrAPIPrimaryEntity {
3030
@ManyToOne(fetch = FetchType.LAZY)
3131
private PersonEntity listOwnerPerson;
3232
@OneToMany(mappedBy="list", cascade = CascadeType.ALL)
33+
@OrderColumn(name = "position")
3334
private List<ListItemEntity> data;
3435

3536
public PersonEntity getListOwnerPerson() {

src/main/java/org/brapi/test/BrAPITestServer/model/entity/core/ListItemEntity.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ public class ListItemEntity extends BrAPIBaseEntity {
1111
private ListEntity list;
1212
@Column
1313
private String item;
14+
@Column
15+
private Integer position;
1416

1517
public ListEntity getList() {
1618
return list;
@@ -24,6 +26,10 @@ public String getItem() {
2426
public void setItem(String item) {
2527
this.item = item;
2628
}
27-
28-
29+
public Integer getPosition() {
30+
return position;
31+
}
32+
public void setPosition(Integer position) {
33+
this.position = position;
34+
}
2935
}

src/main/java/org/brapi/test/BrAPITestServer/service/core/ListService.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package org.brapi.test.BrAPITestServer.service.core;
22

3-
import java.util.ArrayList;
4-
import java.util.Date;
5-
import java.util.List;
6-
import java.util.Optional;
3+
import java.util.*;
74
import java.util.stream.Collectors;
85

96
import jakarta.validation.Valid;
@@ -237,12 +234,16 @@ private void updateEntity(ListEntity entity, @Valid ListNewRequest list) throws
237234
}
238235

239236
if (list.getData() != null) {
240-
entity.setData(list.getData().stream().map((item) -> {
237+
List<ListItemEntity> items = new ArrayList<>();
238+
ListIterator<String> iter = list.getData().listIterator();
239+
while (iter.hasNext()) {
241240
ListItemEntity itemEntity = new ListItemEntity();
242-
itemEntity.setItem(item);
241+
itemEntity.setPosition(iter.nextIndex());
242+
itemEntity.setItem(iter.next());
243243
itemEntity.setList(entity);
244-
return itemEntity;
245-
}).collect(Collectors.toList()));
244+
items.add(itemEntity);
245+
}
246+
entity.setData(items);
246247
} else {
247248
entity.setData(new ArrayList<>());
248249
}

0 commit comments

Comments
 (0)