情形:两个表,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) DEFAULT NULL COMMENT '站点名称',
`short_name` varchar(100) DEFAULT NULL COMMENT '简短名称',
PRIMARY KEY (`site_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; #
# Source for table my_site_company
# DROP TABLE IF EXISTS `my_site_company`;
CREATE TABLE `my_site_company` (
`site_id` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) NOT NULL COMMENT '公司名称',
`scale` varchar(255) DEFAULT NULL COMMENT '公司规模',
`industry` varchar(1000) DEFAULT NULL COMMENT '公司行业',
`contact` varchar(500) DEFAULT NULL COMMENT '联系方式',
`address` varchar(500) DEFAULT NULL COMMENT '公司地址',
PRIMARY KEY (`site_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Site.java:

@Entity
@Table(name = "my_site")
@SuppressWarnings("serial")
public class 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")
public class 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);
} }

最新文章

  1. Mongo查询
  2. Two Sum Leetcode Java
  3. DirectoryBrowserMiddleware中间件如何呈现目录结构
  4. 如何查看MySQL执行计划
  5. localtime()方法的疑惑
  6. phaser源码解析(三) Phaser.Utils类下isPlainObject方法
  7. [Cycle.js] Main function and effects functions
  8. Android中通过耳机按键控制音乐播放的实现
  9. openwrt之snmpd
  10. 关于ng的路由的几点想法(ui-view)
  11. Runtime那些事
  12. ubuntu网络设置及遇到问题
  13. Bzoj2442:修剪草坪
  14. B-day5
  15. Bash里面如何返回绝对路径
  16. Verdi 看波形常用快捷操作
  17. Spring Boot + JPA 因为 javassist 包出现 NullPointerException 问题的解决
  18. Nerd的套现ATM机
  19. [HBase_1] HBase安装与配置
  20. php编程 之php基础 表单

热门文章

  1. 设置页面不缓存 no-cache
  2. 使用prototype 对象定义类成员
  3. HTTP响应头和请求头信息对照表
  4. SqlServer参数化脚本与自动参数化(简单参数化)
  5. 用c#读取文件内容中文是乱码的解决方法:
  6. java.io.IOException: ORA-22920: 未锁定含有 LOB 值的行
  7. [原]Linux系统管理使用技巧总结
  8. jQuery网页右侧固定层显示隐藏在线qq客服代码
  9. 网页颜色RGB记法和16进制记法转化方法
  10. android学习笔记43——图形图像处理3——Path