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
} ]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值