mysql注解查询两表_@Query 注解方式实现多表查询

@Query 注解方式实现多表查询。请高手了

定义以下类

userVo1

列:id     c1      c 2       c3          c4           c5

user1

列:id     c1      c 2       c3

area1

列:aid      c4        c5

查通过@Query的方式得到userVo对像,并返回

@Query(“select a.id,a.c1,a.c2,a.c3,b.c4,b.c5 from user a,area b where a.id=b.aid”)

public List finduserVoList();

//user1

@Entity

@Table(name = “user”)

public class user1 {

private Long id;

private String c1;

private String c2;

private String c3;

@Id

@GenericGenerator(name = “idGenerator”, strategy = “sequence”,parameters = {@Parameter(name = “sequence”,value=”co_user_seq”)})

@GeneratedValue(generator = “idGenerator”)

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getC1() {

return c1;

}

public void setC1(String c1) {

this.c1 = c1;

}

public String getC2() {

return c2;

}

public void setC2(String c2) {

this.c2 = c2;

}

public String getC3() {

return c3;

}

public void setC3(String c3) {

this.c3 = c3;

}

//area

@Entity

@Table(name = “area”)

public class area1 {

private Long aid;

private String c4;

private String c5;

@Id

@GenericGenerator(name = “idGenerator”, strategy = “sequence”,parameters = {@Parameter(name = “sequence”,value=”co_user_seq”)})

@GeneratedValue(generator = “idGenerator”)

public Long getAid() {

return aid;

}

public void setAid(Long aid) {

this.aid = aid;

}

public String getC4() {

return c4;

}

public void setC4(String c4) {

this.c4 = c4;

}

public String getC5() {

return c5;

}

public void setC5(String c5) {

this.c5 = c5;

}

//uservo1

private static final long serialVersionUID = 1L;

private Long id;

private String c1;

private String c2;

private String c3;

private String c4;

private String c5;

@Id

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getC1() {

return c1;

}

public void setC1(String c1) {

this.c1 = c1;

}

public String getC2() {

return c2;

}

public void setC2(String c2) {

this.c2 = c2;

}

public String getC3() {

return c3;

}

public void setC3(String c3) {

this.c3 = c3;

}

public String getC4() {

return c4;

}

public void setC4(String c4) {

this.c4 = c4;

}

public String getC5() {

return c5;

}

public void setC5(String c5) {

this.c5 = c5;

}

解决方案

40

講的不清不楚,說明白點

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明@Query 注解方式实现多表查询!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中实现多数据源的连表查询可以通过以下步骤进行配置和实现。 首先,在应用的配置文件(application.yml或application.properties)中配置多个数据源的连接信息。例如,你可以在配置文件中添加以下内容来配置两个数据源(db1和db2): ``` spring: datasource: dynamic: primary: db1 db1: url: jdbc:mysql://10.200.36.217:3306/nky_v3_new?characterEncoding=utf-8&serverTimezone=UTC username: root password: Zszzyznjs@2020 driver-class-name: com.mysql.jdbc.Driver db2: url: jdbc:mysql://10.200.36.217:3306/nky_v3?characterEncoding=utf-8&serverTimezone=UTC username: root password: Zszzyznjs@2020 driver-class-name: com.mysql.jdbc.Driver ``` 接下来,你需要在代码中配置多数据源。你可以使用`@Configuration`注解创建一个配置类,并使用`@Bean`注解创建多个`DataSource`对象,分别对应不同的数据源。然后,你可以使用`@Primary`注解指定一个默认的数据源。 ```java @Configuration public class DataSourceConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource.db1") public DataSource db1DataSource() { return DataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix = "spring.datasource.db2") public DataSource db2DataSource() { return DataSourceBuilder.create().build(); } @Primary @Bean(name = "dynamicDataSource") public DataSource dynamicDataSource() { DynamicDataSource dynamicDataSource = new DynamicDataSource(); Map<Object, Object> dataSourceMap = new HashMap<>(); dataSourceMap.put("db1", db1DataSource()); dataSourceMap.put("db2", db2DataSource()); dynamicDataSource.setTargetDataSources(dataSourceMap); dynamicDataSource.setDefaultTargetDataSource(db1DataSource()); return dynamicDataSource; } } ``` 在上述代码中,我们创建了两个数据源(db1DataSource和db2DataSource),并将它们放入一个`DynamicDataSource`对象中。`DynamicDataSource`是一个自定义的数据源,它可以根据需要动态切换数据源。我们还使用`@Primary`注解指定了默认的数据源为db1DataSource。 最后,你可以在需要进行连表查询的地方使用`@Transactional`注解开启事务,并在查询方法中指定使用哪个数据源。例如,你可以在Controller中的查询方法上添加`@Transactional("dynamicDataSource")`注解来指定使用`dynamicDataSource`数据源进行查询。 ```java @PostMapping("query") @Transactional("dynamicDataSource") public List<User> query() { return userService.query(); } ``` 通过以上配置和代码,你就可以在Spring Boot中实现多数据源的连表查询了。在查询方法中,使用`dynamicDataSource`数据源可以访问不同的数据库表,并进行连表查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值