实体类作为另一个实体类的属性向前台传数据的问题

最近在二次开发一个springMVC项目,遇到了一个数据展示问题:因为后台实体类在编写的时候,使用另一个实体类作为一个实体类的属性,但是在前台要展示的数据在两个实体类中都有涉及,如下于是就犯了难,难道非要在返回数据的时候再封装一个传参数的对象出来吗?但是其他地方都不会用到的这个对象,我不想这么做。经过debug 代码分析各个参数之后,解决了这个问题。代码如下:
实体类:请关注其中  QRCodeEntity 这个对象类型的属性

@Entity
@Table(name = "legalpublish_book")
public class LegalPublishBookEntity extends IdEntity {
	
	private Integer bookyear;//书籍年份
	private String bookname;//书籍名称
	private Integer bookorder;//书籍排序
	private String bookchapter;//宪法/经济法~ 之类的
	private Integer sectionnumber;//节编号
	private String booksection;//反分裂国家法(宪法的细分)
	private Integer qrcodeitem;//二维码对应部分    1书籍  2章 3节
	private String parentid;//书籍无父id 章对应书的id 节对应章的id	
	private String accountid;
	private Integer bindablequantity;//可绑定的用户数
	private Set<GzUserInfo> userlist;//已绑定用户
	
	
	private QRCodeEntity qrcode;//对应二维码
	
	private List<StripEntity> striplist;//对应的节内容

前端使用的bootstrap框架,使用如下方法调取数据:请关注二维码字段

//获取表格数据
function loadTableData(){
	 $("#tableGridData").bootstrapTable({
    	method: "post",  //使用get请求到服务器获取数据  
    	contentType : "application/x-www-form-urlencoded",
        url: "stripBookQrcodeController.do?datagrid&field=id,bookyear,bookname,bookchapter,sectionnumber,booksection,qrcodeitem,parentid,accountid,isbind,bindablequantity,qrcode_codeticket,userlist", //获取数据的Servlet地址   
        striped: true,  //表格显示条纹  
        queryParams: function queryParams(params) {   //设置查询参数
            var param = {
        		page: params.offset/params.limit+1,
        		rows: params.limit,
        		sort: params.sort,
                order:params.order,
                isbind:$("#isbindsearch").val(),
                bookname:$("#booknamesearch").val(),
            };
            return param;
        },
        pagination: true, //启动分页  
        pageSize: 10,  //每页显示的记录数  
        pageNumber:1, //当前第几页  
        pageList: [5, 10, 20, 100, 1000],  //记录数可选列表  
        search: false,  //是否启用查询  
        sortable: true,                     //是否启用排序
        showColumns: true,  //显示下拉框勾选要显示的列  
        showRefresh: true,  //显示刷新按钮  
        sidePagination: "server", //表示服务端请求  
		locale:'zh-CN',
        clickToSelect: true,    //是否启用点击选中行
        columns: [{
        	checkbox: true
        }, {
        	field:'id',
        	visible: false,
        },{
        	field:'bookyear',
        	title: '书籍年份',
        	sortable : true,
        },{
        	field:'isbind',
        	title: '二维码类型',//真题二维码  普通二维码
        	sortable : true,
        },{
        	field:'bindablequantity',
        	title: '可绑定用户数',
        	sortable : true,
        },{
        	field:'qrcode_codeticket',
        	title: '二维码',
        	sortable : true,
        	formatter: qrcodeFormatter,
        }],
        toolbar:"#dicToolbar",
        responseHandler: function(res) {
            return {
                "total": res.total,//总页数
                "rows": res.rows   //数据
             };
        },
    });
	 function qrcodeFormatter(value, row){
		 var div =  "<img src=\"https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket="+value+"\" width=\"60px\" heigth=\"30px\"></img>";
		 return div;
	 }
	 
}

与此同时,后台controller代码如下:

	@RequestMapping(params = "datagrid")
	@ResponseBody
	public void datagrid(HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid,LegalPublishBookEntity legalPublishBook) {
		CriteriaQuery cq = new CriteriaQuery(legalPublishBook.getClass(), dataGrid);
		if(StringUtil.isNotEmpty(legalPublishBook.getBookname())){
			cq.like("bookname", legalPublishBook.getBookname());
			legalPublishBook.setBookname("");
		}
		cq.add();
		//查询条件组装器
		org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, legalPublishBook);
		this.systemService.getDataGridReturn(cq, true);
		TagUtil.datagridstr(response, dataGrid);
	}

需求是前台在请求获取LegalPublishBookEntity 这个实体类的数据库数据的时候还需要获取 QRCodeEntity 其中的一个属性,而QRCodeEntity 在编写实体类的时候是 LegalPublishBookEntity 的一个属性当时这么写是为了使用hql语句进行多表联查方便,但同时也造成了现在的麻烦。

我记得 hibernate在查询数据库时候,一般会将对象和属性使用下划线 “_” 连接起来,但是我在这种情况下使用下划线直接来调用QRCodeEntity的属性可不可以呢? 在前台上如上代码写上 qrcode_codeticket 试了一下,竟然能将数据调出来!不知道这是我的误打误撞还是hibernate 为了方便开发人员的调用就是如此设计的,虽然解决了问题,但是还是有一些不太明白的地方,写的不好,有各位大牛看见了还希望顺便指教一下这个问题~

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值