码迷,mamicode.com
首页 > 其他好文 > 详细

@Formula

时间:2019-07-03 18:34:40      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:获取   his   update   st表   void   注解   name   idt   任务   

@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());
    }

 

@Formula

标签:获取   his   update   st表   void   注解   name   idt   任务   

原文地址:https://www.cnblogs.com/hanjun0612/p/11128095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!