首先,对于Spring EcoSystem来说还很新...仍然在学习。所以这是我的问题...
问题
我有一个名为destinations
和destination_translations
的表,用于存储有关目的地的翻译
+----+------+------------+------------+
| id | code | created_at | updated_at |
+----+------+------------+------------+
和我的destination_translations表
+-------------------------------------------------------------------+
| id | destination_id | locale | name | created_at | updated_at |
+-------------------------------------------------------------------+
我需要使用父模型访问我的所有翻译,如下所示。可以,但是可以获取与destination_id相关的所有翻译
@Data
@Entity
@EqualsAndHashCode(callSuper = true)
@Table(name = "destinations", uniqueConstraints = @UniqueConstraint(columnNames = "code"))
public class Destination extends BaseModel {
private String code;
private long latitude;
private long longitude;
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "destination_id")
private List<DestinationTranslation> translations;
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "model_id")
@Where(clause = "model_namespace='App\\\\Models\\\\Destination' AND meta_type='IMAGE'")
private List<MetaDetail> photos;
}
每个请求都得到一个Accept-Header,因为我的数据库具有所有所需的翻译,因此我需要将翻译解析为客户端传递给我的任何语言。
例如,如果我收到一个ja-jp
的{{1}}请求的Accept-Header来获取第一个目的地,那么根据accept标头,我应该只解析GET
的所有翻译(日语)
ja-jp
接受语言应与destination_translations表的语言环境匹配
我可以使用 {
"id": 1,
"code": "SIG",
"translations": [
// array of Japanese translated data
]
}
批注编写自定义查询,但是我有许多这些表的功能相同。
我尝试了 @Query()
,但它仅适用于静态。如果有人能指出正确的方向,那将是不胜感激的。