应用场景,由于数据库以数据为维度进行存储,由于设计不合理或其他原因,转换为业务逻辑时需要将该表映射为两个类。
例如存在如下学生信息表,表中存在学号、学院名称、学院号、学生姓名、年龄、性别等信息。通常情况下会将学生信息创建为单独的类。
CREATE TABLE STUDENTS
(
STUDENT_ID_ VARCHAR2(32) NOT NULL PRIMARY KEY,
COLLEGE_NAME_ VARCHAR2(50),
COLLEGE_CODE_ VARCHAR2(50),
NAME_ VARCHAR2(50),
AGE_ VARCHAR2(3),
GENDER_ VARCHAR2(1)
)
可以使用@Embeddable注解来描述映射类型本身,例如下面的学生类。
@Embeddable
public class Student {
private String name;
private String age;
private String gender;
}
可在数据库实体类型中进行引用,通过@Embedded进行引用给定的可嵌入类型。
@Entity(name = "STUDENTS")
public class StudentEntity {
@Id
private String studentId;
private String collegeName;
private String collegeCode;
@Embedded
private Student student;
public Student getStudent() {
return student;
}
}
上述只是可嵌入值相关的简单概念的实现,可根据软件开发的实际业务情况进行更深层次的适配操作。