Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以使用JPA将多个数据库表映射到一个唯一的实体吗?_Java_Mysql_Hibernate_Spring Boot_Jpa - Fatal编程技术网

Java 我可以使用JPA将多个数据库表映射到一个唯一的实体吗?

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(

我试图在我的一个实体的描述标题字段中添加多语言,但没有成功。我的实体如下,我的数据库是MySQL:

@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);
}