@Entity
public class H {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
int id;
String name;
@Embedded
I i;
}
@Embeddable
public class I {
String iName;
@OneToMany(cascade = { PERSIST, REMOVE })
List<J> j = new ArrayList<J>();
}
@Entity
public class J {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
int id;
String name;
}
以上code,Class H中嵌入Class I,Class I与Class J单向一对多,I不会生成表格,I中的属性会作为字段存在H表中。
若把Class I中的iName改成name,就像Class H中的,那么,生成数据库时,不会有任何提示,没有异常!表格H中只会有一个name字段。向数据库中插入数据时,就有异常抛出了。
于是乎,使用Embeddable,命名真是需要十分关注的...
以上,ElipseLink与OpenJPA下都一样。
分享到:
相关推荐
通过这种方式,开发者可以在 Java EE 5 应用服务器内或 Java SE 5 应用程序中使用 JPA 持久化提供者来处理对象持久化。 #### 二、JPA实体类定义 - **`@Entity`**: 此注解用于标记一个普通的 Java 类(POJO)作为 ...
在 Hibernate 中,可以使用 `@EmbeddedId` 和 `@Embeddable` 注解来实现。 10. **自动生成主键 (GeneratedValue)** Hibernate 提供了多种主键生成策略,如 `AUTO`、`IDENTITY`、`SEQUENCE` 和 `TABLE` 等,可以...
9. **嵌入式对象和组件**:使用`@Embeddable`和`@Embedded`注解可以将一个类作为另一个类的组件,它们将共享相同的表。 通过以上介绍,我们可以看出Hibernate注解配置极大地简化了ORM的设置过程,使得代码更加清晰...
使用@Id、@IdClass、@EmbeddedId、@GeneratedValue、@SequenceGenerator、@TableGenerator批注可以指定以下项之一:一个@Id、多个@Id和一个@IdClass、一个@EmbeddedId,还可以使用这些批注微调数据库维护实体身份的...
@Embeddable public static class EmployeeId implements Serializable { private Long deptId; private Long empId; // getter 和 setter } @Entity public class Employee implements Serializable { @...
可以单独使用,也可以配合`@GeneratedValue`生成主键值。 ```java @Entity public class User { @Id private Long id; // ... } ``` 4. **`@GeneratedValue`**: 当需要自动生成主键值时,可以与`@Id`一起...
### Java Persistence ...JPA 通过使用批注来简化了实体 Bean 的配置和使用,使得开发者可以更专注于业务逻辑而非底层的数据库交互细节。通过对 JPA 批注的理解和合理运用,可以有效地提高应用程序的开发效率和维护性。
对于复合主键,可以使用@EmbeddedId注解配合一个嵌入式类来表示。例如: ```java @Embeddable public class OrderId { private String orderId; private int customerId; } @Entity public class Order { @...
使用 @OneToMany 注解来定义这种关联,可以通过 @JoinColumn 定义外键所在的列。还可以设置 mappedBy 属性来指定反向关联的字段。 **多对一关联(Many-to-One)** 多对一关联是与一对多关联相对应的,多个实体实例...
在 JPA 中,可以通过使用注解来配置实体类的各种行为,从而达到简化配置的目的。注解是一种元数据标记,可以在类、方法或者字段级别使用。JPA 提供了一系列的注解来帮助开发者更灵活地控制实体类的行为,比如如何将...
### JPA批注详解 #### 一、概述 Java Persistence API (JPA) 是 Java EE 5 和 EJB 3.0 的...此外,这些批注不仅可以在 Java EE 环境中使用,也适用于简单的 Java SE 应用程序,极大地提高了代码的复用性和可移植性。
@OneToMany(targetEntity = Employee.class) private List<Employee> employees; // ... } ``` ##### 4. @ManyToMany - **作用**:表示多对多的关系。 - **属性**: - `targetEntity`:关联实体的类型。 - `...
2. **@OneToMany**: 一对多关联,可以指定`mappedBy`属性,表明在另一方实体类中有引用。 3. **@ManyToOne**: 多对一关联,通常与`@JoinColumn`配合使用,指定外键列。 4. **@ManyToMany**: 多对多关联,通常通过...
`kotlin-compiler-embeddable`使得这种需求成为可能,通过内建编译器,可以在不依赖外部工具的情况下完成代码的编译。 2. **DSL(领域特定语言)构建**:在构建自定义构建系统或者配置文件解析时,开发者可以利用...
通过@Component或@Embeddable注解,可以将一个类声明为组件,并在其他实体中使用。 6. **Hibernate_Association**:这部分可能包含了一对一、一对多、多对一和多对多关系的映射代码。例如,@OneToOne用于一对一关系...
当中间表除了包含两个关联表的外键之外还有其他字段时,需要创建一个独立的 POJO 类来代表中间表,并使用 `@Embeddable` 和 `@EmbeddedId` 注解来定义复合主键。 **示例代码:** ```java // RoleMember.java @...
在Hibernate中,我们可以使用`@IdClass`或`@EmbeddedId`注解来处理复合主键。 1. 使用@IdClass `@IdClass`注解用于指定一个单独的类作为复合主键的载体。这个类通常包含与复合主键相关的属性,并且需要实现`java....
#### 身份批注:`@Id`, `@IdClass`, `@EmbeddedId`, `@GeneratedValue`, `@SequenceGenerator`, `@TableGenerator` `@Id`批注用于标记实体中的某个字段或属性作为主键。`@GeneratedValue`批注则进一步指定了主键的...