在Java

时间:2016-06-15 05:29:12

标签: design-patterns dao spring-jdbc

我有活动和锻炼表,其中锻炼是父母,活动是孩子,这意味着每个锻炼包含一个或多个活动。

活性

ACTIVITY_ID
命名
距离

锻炼

workout_id
命名
START_TIME
activity_ids varchar(200) - 此列包含逗号分隔的字符串值(1,2,3 ...)

我使用Spring-JDBC作为DAO层,每个表都有DAO类(ActivityDAO和WorkoutDAO)。我想知道在哪个DAO中需要放置代码以在一个查询中检索锻炼及其活动,因为WorkoutDAO不包含用于构建活动对象的RowMapper,反之亦然。谁能帮助我做最好的方法呢?

1 个答案:

答案 0 :(得分:1)

请勿将逗号分隔的字符串存储在activity_ids表的workout列中。

相反,创建另一个名为WorkoutActivityMapping的表,每个工作者都有一行到活动映射。示例模式:

  • workout_activity_mapping_id - 可选
  • workout_id
  • activity_id

@OneToMany DAO POJO中将其定义为Worker映射。

我相信您可以使用上面的提示找出剩余的细节。