Hibernate注解:一对一主键关联
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Hibernate注解:一对一主键关联,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2610字,纯文字阅读大概需要4分钟。
内容图文
情形:两个表,my_site和my_site_company,通过主键site_id唯一关联。my_site的主键是自动增加,my_site_company的主键依赖于my_site。
# # Source for table my_site # DROP TABLE IF EXISTS `my_site`; CREATE TABLE `my_site` ( `site_id` int(11) NOT NULL AUTO_INCREMENT, `site_name` varchar(100) DEFAULTNULL COMMENT ‘站点名称‘, `short_name` varchar(100) DEFAULTNULL COMMENT ‘简短名称‘, PRIMARYKEY (`site_id`) ) ENGINE=MyISAM AUTO_INCREMENT=2DEFAULT CHARSET=utf8; # # Source fortable my_site_company # DROPTABLEIFEXISTS `my_site_company`; CREATETABLE `my_site_company` ( `site_id` int(11) NOT NULL DEFAULT ‘0‘, `name` varchar(255) NOTNULL COMMENT ‘公司名称‘, `scale` varchar(255) DEFAULTNULL COMMENT ‘公司规模‘, `industry` varchar(1000) DEFAULTNULL COMMENT ‘公司行业‘, `contact` varchar(500) DEFAULTNULL COMMENT ‘联系方式‘, `address` varchar(500) DEFAULTNULL COMMENT ‘公司地址‘, PRIMARYKEY (`site_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Site.java:
@Entity @Table(name = "my_site") @SuppressWarnings("serial") publicclass Site implements Serializable { // Site的主键是自动递增 @Id @GeneratedValue @Column(name = "site_id") private Integer siteId; @Column(name = "site_name") private String siteName; @Column(name = "short_name") private String shortName; // Site通过主键一对一关联到Company, // 在主键自动递增的对象这边写 @OneToOne(cascade = CascadeType.ALL) @PrimaryKeyJoinColumn private Company company; }
Company.java:
@Entity @Table(name = "my_site_company") @SuppressWarnings("serial") publicclass Company implements Serializable { // Company的主键来源于site的主键 @Id @Column(name = "site_id") @GenericGenerator(name = "pkGenerator", strategy = "foreign" , parameters = {@Parameter(name = "property", value = "site")}) @GeneratedValue(generator = "pkGenerator") private Integer siteId; @Column private String name; @Column private String scale; @Column private String industry; @Column private String address; @Column private String contact; @OneToOne(cascade = CascadeType.ALL, mappedBy = "company") private Site site; }
CompanyController.java:
public class CompanyController extends SimpleController { @Autowired SiteDao siteDao; @Autowired CompanyDao companyDao; @RequestMapping public String indexAction(Model model, HttpServletRequest request) throws Exception { Site site = siteDao.fetchOne(1); Company company = site.getCompany(); if (company == null) company = new Company(); if (request.getMethod() != "POST") { model.addAttribute("entity", company); return redirectDefaultView(); } RequestUtils.copyBeanProperties(company); company.setSite(site); site.setCompany(company); companyDao.update(company); return redirectIndex(SUCCESS_SAVE); } }
原文:http://www.cnblogs.com/eastson/p/3981670.html
内容总结
以上是互联网集市为您收集整理的Hibernate注解:一对一主键关联全部内容,希望文章能够帮你解决Hibernate注解:一对一主键关联所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】