hibernate关于视图的处理

hibernate处理视图和处理表情况是一样的,以下是通过springboot和jpa进行的测试
实体:

@Entity
public class Person {
	@Id
	@GeneratedValue
	private Long id;
	private String name;
	private Integer age;
	private String address;
	/*get和set方法*/
}
@Entity
public class Student {
	@Id
	@GeneratedValue
	private Long id;
	private String name;
	/*get和set方法*/
}
@Entity//此类为视图类
public class Vps {
	@Id//此处必须加id,id可以加到任意字段
	private Long pid;
	private Long sid;
	private String sname;
	private Integer age;
	/*get和set方法*/
}

注意:视图实体也是必须有id的,id可以加到任意字段,本人在pid,sid,sname,age四个字段上都实验成功
视图建立的sql语句:

select `person`.`id` AS `pid`,`student`.`id` AS `sid`,`student`.`name` AS `sname`,`person`.`age` AS `age` from (`person` join `student`)

dao层:

public interface VpsRepository extends JpaRepository<Vps, Long> {
}

service层:

@Service
public class DemoServiceImpl implements DemoService {
	@Autowired
	private VpsRepository vpsRepository;

	@Transactional(readOnly = true)
	@Override
	public List<Vps> findAll() {
		return vpsRepository.findAll();
	}
}

控制层:

@RestController
public class MyController {
	@RequestMapping("/vpslist")
	public List<Vps> vpslist() {
		return demoService.findAll();
	}
}

结果:

[ {
  "pid" : 1,
  "sid" : 1,
  "sname" : "s1",
  "age" : 1
} ]
发布了36 篇原创文章 · 获赞 5 · 访问量 5353

猜你喜欢

转载自blog.csdn.net/weixin_43060721/article/details/86681964