hibernate单一主键
hjibernate单一主键
单一主键:指表中由某一列来充当主键 assigned 由java应用程序负责生成(手工赋值) native 由底层数据库自动生成提示符,如果是MySQL就是increment,如果是Oracle就是sequence,等等。另外,即使手动赋值主键,也不会起作用。 <generator class="native" />mysql 中为AUTO_INCREMENT PRIMARY KEY assigned 当为int时 默认0 其他默认null
单一主键:是指表当中由某一列来充当它的主键
hibernate-单一主键
//increment自动生长,sequence序列
单一主键(列级约束):表当中由某个字段充当主键. 复合主键(表级约束):表当中有多个字段共同充当主键. 当主键生成策略为assigned,即主键由java应用程序负责生成标识符(手工赋值),标示符理解为记录值.当没有为主键属性赋值,则默认为0,假如 <property name="hibernate.hbm2ddl.auto">udpate</property>设置了update,则第二次再次运行就会出错. 当主键生成策略为native,即由底层数据库自动生成的标示符,如果是MySQL就是auto_increment(自动增长),如果是Oracle就是sequence,等等.因此在类里不需要为对象的主键属性进行赋值,并把 <property name="hibernate.hbm2ddl.auto">create</property>属性值设置为create,则运行程序时,会自动重新创建表,并且会有auto_increment自动增长.此时用手动赋值会无效. 用hibernate可以创建表,尽管数据库不存在此表.在持久化类设置相应的字段,并且hbm映射文件的hbm2ddl设置为create即可.