若使用uuid作为主键的生成策略,前提是主键要定义为String型,且映射文件中写:
<generator class = "uuid"></generator>
下面是持久类和映射文件:
持久类:
package hiber1; public class User { private String uid; private String username; private String password; private String address; public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
映射文件:
<?xml version="1.0" encoding="UTF-8"?> <!--引入dtd约束--> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name = "hiber1.User" table = "newtableTest2"><!--class中写类的全路径--> <id name = "uid" column = "uid"> <generator class = "uuid"></generator> </id> <property name="username" column = "username"></property> <property name="password" column = "password"></property> <property name="address" column = "address"></property> </class> </hibernate-mapping>
主要就是这两处改动.
之后查看生成的表格,