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());
        }
  • 相关阅读:
    155. 最小栈
    160. 相交链表
    PAT 1057 Stack
    PAT 1026 Table Tennis
    PAT 1017 Queueing at Bank
    PAT 1014 Waiting in Line
    PAT 1029 Median
    PAT 1016 Phone Bills
    PAT 1010 Radix
    PAT 1122 Hamiltonian Cycle
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/11128095.html
Copyright © 2011-2022 走看看