hibernate 中 实体类 使用int定义变量 和 使用Integer定义变量的区别

hibernate的PO类中 经常会用到int 型得变量 这个时候如果使用基本类型的变量(int ) 如果数据库中对应的存储数据是 null 时使用PO类进行获取数据 会出现类型转换异常 如果使用的是对象类型(Integer)这个时候则不会报错。
### ORM框架中使用注解实现数据库表实体类映射的方法 在Java对象关系映射(ORM)框架中,如Hibernate,可以通过注解的方式简化并清晰化实体类与数据库表之间的映射过程。这种方式不仅提高了开发效率,还增强了代码的可读性维护性。 #### 定义实体类 通过`@Entity`注解指定该类是一个持久化实体,并且通常配合`@Table`注解指明对应的数据库表格名称以及一些额外配置选项[^4]: ```java @Entity @Table(name="EMPLOYEE", uniqueConstraints=@UniqueConstraint(columnNames={"id"})) public class Employee { private int id; private String firstName; private String lastName; } ``` 上述例子展示了如何利用这两个基本注解完成最基础的信息设定。其中`name`参数用来设置目标数据表的名字;而`uniqueConstraints`则可用于声明唯一键约束条件。 #### 属性映射 对于每一个需要被保存至数据库中的成员变量,在其上方添加相应的字段级注解来描述具体的存储细节。比如,为了表示主键,可以采用`@Id`加上生成策略(`GenerationType`)组合的形式[^1]: ```java @Id @GeneratedValue(strategy= GenerationType.IDENTITY) @Column(name = "ID") private Integer id; @Column(name = "FIRST_NAME") private String firstName; @Column(name = "LAST_NAME") private String lastName; ``` 这里除了标注为主键外,也设定了自动增长模式(IDENTITY),并且针对每个普通属性都应用了`@Column`以明确指出它们各自关联的数据列名。 #### 关联关系建模 当涉及到多张表间的关系时,则需引入更多类型的注解来进行表达。例如一对多/多对一、多对多等复杂场景下的双向导航特性都可以借助于`@OneToMany`, `@ManyToOne`, 或者`@ManyToMany`等标签轻松达成。 ```java // One-to-many relationship example within the same entity file. @OneToMany(mappedBy="department", cascade=CascadeType.ALL, fetch=FetchType.LAZY) private Set<Employee> employees; ``` 以上片段说明了一部门下辖多名员工的一对多联系情况,同时设置了级联操作行为(cascade)及加载时机(fetch),使得整个体系更加灵活可控。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值