从SQL到HQL休眠的情况

问题描述

我正在尝试将此代码sql转换为HQL休眠。 任何人都可以伸出援手吗?

CASE WHEN s.id IS NULL THEN s.direction else l.direction end as street

解决方法

看看documentation

15.33。搜索的CASE表达式

搜索的表单具有以下语法:

function getColumns($selectedEraId) { var columns = []; $.ajax({ type: "POST",url: "./graphs.php",data: { call_function : 'getResourceTableColumns',eraId: $selectedEraId},success: function (data) { data = JSON.parse(data); for (var i in data.data) { columns.push({data: data.data[i],title: data.data[i]}); } if ( $.fn.dataTable.isDataTable( '#playerResourceTable' ) ) { // If the table already exists,detroy it before creating it again $('#playerResourceTable').DataTable().destroy(); } getPlayerResourceTable($selectedEraId,columns); // Will recreate the table with the new columns } }); } function getPlayerResourceTable($selectedEraId,columns_to_show) { $city_id = 91; $playerResourceTable = $('#playerResourceTable').DataTable( { processing: true,serverSide: false,filter: true,columns: columns_to_show,ajax: { url: './graphs.php',type: 'POST',data: { call_function: 'playerResourceTable',colummn_fields : columns_to_show,city_id : parseInt($city_id)} },initComplete: function () { this.api().columns( 0 ).every( function () { var column = this; var select = $('<select id="selectEraId" ><option value=""></option></select>') .appendTo( $("#playerResourceTablesWrapper .dataTables_filter")) .on( 'change',function () { var val = $.fn.dataTable.util.escapeRegex( $(this).val() ); column.search( this.value ).draw(); } ); dropdown_string = getEraDropdown($selectedEraId); } ); $('#selectEraId').on('change',function() { $selectedEraId = this.value; columns_to_show = getColumns($selectedEraId); }); } }); }

CASE [ WHEN {test_conditional} THEN {match_result} ]* ELSE {miss_result} END

Hibernate为此表达式提供了完全相同的语法。