如何生成具有自动休眠ID与初值
您好我写了这样的如何生成具有自动休眠ID与初值
@Id @Column(nullable=false) @GeneratedValue(strategy=GenerationType.AUTO) public int getUserID() { return UserID; }
但是我手动从DAO像“e.setUserID设置它(01)代码生成; “插入。其他行不插入是否有任何过程来获得id值,并检索自动生成的值。即时通讯思想我会得到一些帮助
使用
@GenericGenerator(name="generator", strategy="increment")
@GeneratedValue(generator="generator")
使用身份生成类型,而不是汽车。使用一个长的ID。我还建议更改名称从用户ID到userId。不要忘记类名的@Entity。
@Entity
public class MyClass{
private Long userId;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column
public Long getUserID(){
return userId;
}
//.. rest of class
}
要小心使用命名约定,并确保您的字段名称和类型与数据库中的字段名称和类型相匹配。
当创建行时,它会自动创建ID值...或者我们应该调用setter方法 – Vidya 2012-04-12 04:50:55
如果在数据库中,id应该显示为身份,您应该从不**手动设置id。首先确保你的数据库配置是自动增加ID的。然后按照我上面的建议映射id列。同样,在命名约定和数据类型时要小心。 – 2012-04-12 06:25:36
它的工作,但它是分配到另一列产生的价值 – Vidya 2012-04-12 06:42:26
如果任何人投票,应该有一个理由,应该分享,为什么投了票? – Shehzad 2015-07-24 10:21:50
这不是一个安全的方法,因为生成器从数据库中选择最大ID并对其进行递增。尽管它对于测试目的很有用。文档清楚地警告'不要在集群中使用!'。查看:https://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/id/IncrementGenerator.html https://docs.jboss.org/hibernate/orm/3.3/reference/en /html/mapping.html#mapping-declaration-id – 2015-08-11 07:35:48