Java 我可以使用JPA将多个数据库表映射到一个唯一的实体吗?
我试图在我的一个实体的描述和标题字段中添加多语言,但没有成功。我的实体如下,我的数据库是MySQL:Java 我可以使用JPA将多个数据库表映射到一个唯一的实体吗?,java,mysql,hibernate,spring-boot,jpa,Java,Mysql,Hibernate,Spring Boot,Jpa,我试图在我的一个实体的描述和标题字段中添加多语言,但没有成功。我的实体如下,我的数据库是MySQL: @Data @AllArgsConstructor @NoArgsConstructor @Entity @Table(name = "project") public class ProjectEntity implements Serializable { @Id @Column(name="id") private Integer id; @Column(
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "project")
public class ProjectEntity implements Serializable {
@Id
@Column(name="id")
private Integer id;
@Column(name="team_size")
private Integer teamSize;
@Column(name="description")
private String description;
@Column(name="title")
private String title;
@OneToMany
private List<DetailsEntity> details;
}
我希望能够处理JPA存储库请求,如下所示:
@Repository
public interface ProjectEntityRepository extends JpaRepository<ProjectEntity, Integer> {
@Query("select p from ProjectEntity p left outer join ProjectDetails d on p.id=d.project_id and d.language=:language")
List<ProjectEntity> findAllForLanguage(String language);
}
@存储库
公共接口ProjectEntityRepository扩展了JpaRepository{
@查询(“在p.id=d.project\u id和d.language=:language上从项目实体p左外部联接项目详细信息d中选择p”)
列表findAllForLanguage(字符串语言);
}
您知道如何更改其中的一部分以返回值仅为1 ProjectDetails的项目实体吗
谢谢否。最简单的方法是使用一个抽象类来保存字段,扩展每个表的类并覆盖@Id字段。好主意,谢谢
@Repository
public interface ProjectEntityRepository extends JpaRepository<ProjectEntity, Integer> {
@Query("select p from ProjectEntity p left outer join ProjectDetails d on p.id=d.project_id and d.language=:language")
List<ProjectEntity> findAllForLanguage(String language);
}