Java Spring数据jdbc一对多错误连接
我使用SpringBoot2.3.3和SpringDataJDBC2.0.3来建模to元素和类类型之间的关系。吉他有类别类型 我在H2中的模式(也在MySQL中)如下所示: 我有以下课程:Java Spring数据jdbc一对多错误连接,java,mysql,spring,spring-boot,spring-data-jdbc,Java,Mysql,Spring,Spring Boot,Spring Data Jdbc,我使用SpringBoot2.3.3和SpringDataJDBC2.0.3来建模to元素和类类型之间的关系。吉他有类别类型 我在H2中的模式(也在MySQL中)如下所示: 我有以下课程: @Data @NoArgsConstructor @AllArgsConstructor @Builder @Table(value = "guitars") public class Guitar { @Id long id; String name; S
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(value = "guitars")
public class Guitar {
@Id
long id;
String name;
String description;
@MappedCollection(idColumn = "id")
@Column(value = "classType")
ClassType classType;
}
我的存储库如下所示:
@Repository
public interface GuitarRepository extends CrudRepository<Guitar, Long>, PagingAndSortingRepository<Guitar, Long> {}
SELECT (...) FROM `guitars` LEFT OUTER JOIN `class_type` AS `classType` ON `classType`.`id` = `guitars`.`classType`
此句子出现时带有不正确的左外连接
SELECT `guitars`.`id` AS `id`, `guitars`.`name` AS `name`, `guitars`.`description` AS `description`, `classType`.`id` AS `classType_id`, `classType`.`description` AS `classType_description` FROM `guitars` LEFT OUTER JOIN `class_type` AS `classType` ON `classType`.`id` = `guitars`.`id`
但我希望选择是这样的:
@Repository
public interface GuitarRepository extends CrudRepository<Guitar, Long>, PagingAndSortingRepository<Guitar, Long> {}
SELECT (...) FROM `guitars` LEFT OUTER JOIN `class_type` AS `classType` ON `classType`.`id` = `guitars`.`classType`
我错过了什么吗?这不是一对多的关系。一个
吉他
将引用多个类类型
实例
相反,它似乎是一种多对一关系:许多guist
实例可能引用相同的ClassType
。这使得ClassType
与Guitar
不同,因此它不能被直接的java引用引用,而只能被它的id引用
有关如何使用Spring数据JDBC对这种关系建模的更详细说明,请参见
SELECT `guitars`.`id` AS `id`, `guitars`.`name` AS `name`, `guitars`.`description` AS `description`, `classType`.`id` AS `classType_id`, `classType`.`description` AS `classType_description` FROM `guitars` LEFT OUTER JOIN `class_type` AS `classType` ON `classType`.`id` = `guitars`.`id`
SELECT (...) FROM `guitars` LEFT OUTER JOIN `class_type` AS `classType` ON `classType`.`id` = `guitars`.`classType`