假设有下面的代码
// 所有工作的基类
@MappedSuperclass
public abstract class Work {
}
// 编写代码的工作
@Entity
public class CodeWork extends Work{
@OneToMany(mappedBy="codeWork")
private List<Employee> employees;
}
// 做界面的工作
@Entity
public class UIWork extends Work{
@OneToMany(mappedBy="uiWork")
private List<Employee> employees;
}
// 员工
@Entity
public class Employee{
@ManyToOne
@JoinColumn(name="codeWork_id", nullable=false, updatable=false)
private CodeWork codeWork;
@ManyToOne
@JoinColumn(name="uiWork_id", nullable=false, updatable=false)
private UIWork uiWork;
}
我总觉得这样做特别不好:
1) 像 private List<Employee> employees; 这个部分完全可以放到 Work 里面,但是如果放到Work里面的话mappedBy就不知道写哪个了;
2) Employee里面也是如此,Work的每个子类都要写在里面要搞死的。
请帮忙重构一下,多谢多谢。
PS:第一次发帖难免有点紧张,呵呵
分享到:
相关推荐
第一种:resultType 为基本类型 如果 resultType 为基本类型,如 string(在这里我们把 string 归纳为基本类型),那么当查询结果为空时,dao 接口返回的结果为 null。这种情况下,我们可以通过判断返回值是否为 ...
标题 "ibatis 入门" 暗示我们要探讨的是关于使用和理解开源持久层框架 iBATIS 的基础知识。iBATIS 是一个优秀的 Java 应用框架,它将 SQL 查询与 Java 代码分离,提供了更灵活的数据访问方式。这篇博客(博文链接已...
- **概念**:通过简单的Java类(POJO)来实现WebService,无需额外的配置文件。 - **步骤**: - 下载Axis2最新版本(如1.4.1),包含必要的JAR文件。 - 创建一个简单的Java类,定义WebService的方法。 - 使用Axis...
尽管`selectOne`可以处理单个结果的情况,但当预期有多条结果时,应优先使用`selectList`。 在实际开发中,新手可能会遇到的一些常见问题包括: 1. XML配置文件的书写错误,比如映射文件未正确引入,导致无法找到...
在MyBatis中,模糊查询是一种常见的查询方式,特别是在数据搜索和过滤时非常有用。本文将详细介绍如何在MyBatis中实现模糊查询。 首先,我们要理解MyBatis中`#`和`$`的区别,这是在编写动态SQL时的关键点。`#`符号...