由於代碼庫已經在使用Spring Data JPA,我想創建一個排序 對象,該對象將基於一個對象的存在(或缺少)特定元素 出現在集合本身中,該集合本身是 主表中的元素之一。 Sort對象的屬性需要是動態的,因爲用戶可能希望以一種方式對下一次記錄進行排序。Spring Data JPA,基於嵌套集合中可能條目的動態排序
明確,如果有多個PrimaryEntity對象具有設置爲特定 值「類型」一SecondaryEntity,然後,我會希望他們在相應的 SecondaryEntity在相應的「註釋」字段基礎進行排序。此外,雖然我想要檢索所有SecondaryEntity對象,但我希望 排序僅基於SecondaryEntity記錄,其中'type'等於'重要'。
的類看起來如下(我也重新定義了「等於」爲SecondaryEntity &「的hashCode」):
public class PrimaryEntity
{
@OneToMany(mappedBy = "primary", cascade = CascadeType.ALL)
@MapKey(name = "type")
private Map<String, SecondaryEntity> myMap = new HashMap<>();
@Column(name = "name")
private String name;
}
public class SecondaryEntity
{
@Column(name = "type", length = 200)
private String type;
@Column(name = "notes", length = 2000)
private String notes;
@ManyToOne
@JoinColumn(name = "primary_id", referencedColumnName = "id")
private PrimaryEntity primary;
}
然後我會想創造一種類似於他語法如下:
排序排序=新的排序(「MYMAP [重要] .notes」)
最後,雖然我努力的PrimaryEntity記錄按照上述排序,這不要緊, 我怎麼樣,對於一個給定PrimaryEntity,其S顯示二級實體記錄。
例如,
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
</style>
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>Type</th>
<th>Notes</th>
</tr>
<tr>
<td>Second primary</td>
<td>Important</td>
<td>1</td>
</tr>
<tr>
<td>Second primary</td>
<td>Other</td>
<td>2</td>
</tr>
<tr>
<td>Second primary</td>
<td>Miscellaneous</td>
<td></td>
</tr>
<tr>
<td>Third primary</td>
<td>Important</td>
<td>2</td>
</tr>
<tr>
<td>First primary</td>
<td>Important</td>
<td>3</td>
</tr>
</table>
</body>
</html>
謝謝。
你看過定製存儲庫嗎? –
你好,如果答案幫助你不要忘記接受/ upvote它。 – Cepr0