使用自定义列名Mapspring数据jdbc一对多

svujldwt  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(268)

我使用的是springbootstarter数据jdbc2.4.2。在我的域聚合中,我需要Map从另一个表中的列填充的字符串列表。它是一个遗留数据库,因此我无法控制表名和列名,需要使用自定义名称。我看到有一个@mappedcollection注解,但是在这个场景中看不到如何使用它。下面是我的班级:

@Data
@Table("NMT_MOVIE_THEATRE")
public class MovieTheatre {

    @Id
    @Column("MOVIE_THEATRE_ID")
    private Long id;

    @Column("ZIP_CODE")
    private String zipCode;

    // this comes from table NMT_CURRENT_MOVIE, column CM_ID, joined by MOVIE_THEATRE_ID
    private List<String> currentMovieIds;
}

使用spring数据jdbc,如何创建一对多关系?

8wtpewkr

8wtpewkr1#

把你的衣服包起来 String 在一个小实体里。

@Table("NMT_CURRENTMOVIE")
class MovieId {
    @Id
    @Column("CM_ID")
    final String id

    // add constructor, equals and hashCode here or generate using Lombok
}

然后把它用在 MovieTheatre . 由于没有用于索引的列,因此要使用的正确集合是 Set ```
// ...
class MovieTheatre {
// ...
@MappedCollection(idColumn="MOVIE_THEATRE_ID")
Set currentMovieIds;
}

请注意 `equals` 以及 `hashCode` 是很重要的,因为实体用于 `Set` .

相关问题