
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zzzffhh/article/details/79953506
看了很多帖子 都没有详细的方法,自己整理了一份,供后来人参考以便学习交流;
介绍:
formula 可以利用SQL语动态的生成java属性(实体要存在相应的属性)
规则是在from后边必须是表名,当有where条件时必须有别名,以便调用
具体使用:
User类:
publicclass User {
privateint id;
privateString uname;
privateString password;
privateint rid;
private String rname;//数据库里没有这个字段
User.hbm.xml:
<hibernate-mappingpackage="com.fish.pojo">
<class name="User">
<id name="id"></id>
<propertyname="uname"></property>
<propertyname="password"></property>
<propertyname="rid"></property>
<property name="rname"formula="(select r.rname from role r where r.roleid =rid)"></property>
</class>
</hibernate-mapping>
数据库表
Role类:
publicclass Role {
//角色id
privateint roleid;
//角色名称
privateString rname;
Role.hbm.xml:
<hibernate-mappingpackage="com.fish.pojo">
<classname="Role">
<idname="roleid"></id>
<propertyname="rname"></property>
</class>
</hibernate-mapping>
数据库表:
前台是用ajax写的:
<scripttype="text/javascript"src="js/jquery.js"></script>
<scripttype="text/javascript">
$(function(){
$.ajax({
type: "POST",
url:"${PageContext.request.contextpath}userAction_userLoginById.action",
data: {"id" : 1},
success: function(data) {
alert(data.rname);//可以得到角色名称
},
error:function(e){
console.log(e);
},
dataType:"json"
});
});
</script>
前台效果: