zoukankan      html  css  js  c++  java
  • @Formula

    @Formula  计算临时属性。

    相当于可以关联查询字段,然后放在实体中当做属性使用。

    任务:在User实体层,增加一个额外的属性,来获取Test表中的name字段。

    1 表结构

    User表

    Test表

    2 User实体层(省略了部分字段。)

    @Entity
    @Table(name = "user", catalog = "testdb")
    @DynamicUpdate
    public class User {
        private Integer id;
        private String uuid;
     
        private String test;
     
        @Id
        @GeneratedValue
        @Column(name = "id")
        public Integer getId() {
            return id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
     
        @Column(name = "uuid")
        public String getUuid() {
            return uuid;
        }
     
        public void setUuid(String uuid) {
            this.uuid = uuid;
        }
     
        
        @Formula("(select t.name from test as t where t.id=id)")
        public String getTest() {
            return test;
        }
     
        public void setTest(String test) {
            this.test = test;
        }
    }

    我们可以看到,在getTest上,增加了@Formula注解。查询表时,就会关联Test表的name到属性上。

    注意:

    首先 表增加别名。

    其次 注意sql两段的小括号()

    最后 t.id=id 的最后那个id,对应属性上的@Colun(value = "id")

    3 通过jpa创建一个dao

    @Repository
    public interface UserDao extends JpaRepository<User,Integer> {
    }

    4 测试

    @Autowired
        private UserDao userDao;
     
        @Test
        public void contextLoads() {
            System.out.println(userDao.findById(2).get().getTest());
        }
  • 相关阅读:
    chrome安装vue-devtools
    企业网络设计
    nginx的安装
    Typora 的使用
    如何学习dubbo?
    关于原码反码和补码以及byte&0xff
    HttpClient以及连接池的使用
    计算机网络读书笔记:tcp面试常见问题都在里面了
    接口类是否继承自Object?
    数据挖掘会议记录
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/11128095.html
Copyright © 2011-2022 走看看