表自连实际上就是one to one的关系。比如书籍类型。类型有父类型。那父类型如何表示呢。在java中应当这样写:
<!---->
public class BookType {
private Long id;
private String name;
private BookType parent;
//getter && setter
}
但如果这个是一个JPA类就出问题了。因为parent没有写注释。在jpa自动创建表是会认为这是一个字节类型的。所以还应该为parent些上一个注释。既然是自连。应该写@OneToOne
这里就要注意了。OneToOne不能写其他属性,比如不能这样写
<!---->@OneToOne(targetClass=BookType.class)
这样的话在系统自动生成数据表时会报错。也不能加 @JoinColumn。唯一的办法就是只要@OneToOne。其他什么都不写。这样就不会报错了。
代码如下:
<!---->public class BookType {
private Long id;
private String name;
@OneToOne
private BookType parent;
//getter && setter
}
另外:如果想不让某个属性不被转换成数据库字段。需要在此属性的getter方法上加@Transient注释。比如BookType的fullName属性。
例子:
<!----> /**
* 获取包括父节点名称的全部路径
* @return
*/
@Transient
public String getFullName(){
StringBuffer buffer=new StringBuffer("");
if(parent!=null){
buffer.append(parent.getFullName());
buffer.append("-");
}
buffer.append(name);
return buffer.toString();
}
分享到:
相关推荐
SpringBoot整合JPA实现自动创建数据库表自动建表,JPA逆向生成数据库表 运行环境 jdk8+tomcat9+mysql+IntelliJ IDEA+maven 项目技术(必填) springboot+jpa 数据库文件(可选) 新建一个test的数据库即可,表在...
SpringBoot整合JPA实现自动创建数据库表自动建表,JPA逆向生成数据库表 运行环境 jdk8+tomcat9+mysql+IntelliJ IDEA+maven 项目技术(必填) springboot+jpa 数据库文件(可选) 新建一个test的数据库即可,表在...
springJpa单标递归树形结构
springboot结合jpa实现分页,动态多条件查询,使用thymeleaf前端渲染数据
基于springboot+jpa实现java后台api接口,点餐系统 基于springboot+jpa实现java后台api接口,点餐系统 基于springboot+jpa实现java后台api接口,点餐系统 基于springboot+jpa实现java后台api接口,点餐系统 基于...
本项目使用Maven+SpringBoot+springDataJPA,实现单表的增删改查
jpa入门案例:单表查询,包括分页查询 使用springboot来整合实现
自己闲着没事,写了个spring jpa的简单实现,主要是数据库中student中的学生信息显示到页面中。实现一个简单的功能。
实现JPA基本数据库操作功能封装 实现基于ASM9,动态生成entity、repository、service、serviceImpl、controller相关.class 可根据库表,一键生成新增、修改删除、查询等接口 实现部分基于mybatis-plus,动态代码生成...
简单的JPA实例,适合初学者~~~ 简单的JPA实例,适合初学者~~~ 简单的JPA实例,适合初学者~~~
本系统是基于Thymeleaf+SpringBoot+SpringDataJPA实现的的中小医院信息管理系统。简单实现了挂号收费,门诊管理,划价收费,药房取药,体检管理,药房管理,系统维护等基础功能。就诊卡提供了手动和读卡两种方式录入...
struts+jpa 实现对网络书城简单实现。 多用于新手学习。
jpa实现分页
JPA规范实现,用JPA来解决可移植问题
本实例仅仅是jpa对数据库的基础操作,在后续会将spring融入到项目中进行整合、后续版本将持续更新......
通过参考和引用传智播客的免费教程,将springmvc4.1.6与hibernate4.3.10提供的JPA实现整合,使用mysql5.6.25,在MyEclipse2014中测试通过。可以作为web开发的基础框架使用。 使用说明: 1.需要安装mysql,并创建名为...
本项目非常适合初学springboot的同学,Gradle构建项目,使用了SpringBoot+JPA,实现了单表的增删改查效果,很实用。
毕设项目-基于springboot+jpa实现java后台api接口点餐系统源码.zip毕设项目-基于springboot+jpa实现java后台api接口点餐系统源码.zip毕设项目-基于springboot+jpa实现java后台api接口点餐系统源码.zip毕设项目-基于...
IDEA + SpringBoot + SpringSecurity + JPA 实现用户角色权限登录认证,security过滤请求资源,用户登录获取用户角色权限,过滤用户非法请求等
NULL 博文链接:https://zfei.iteye.com/blog/1453901