日期:2014-05-20  浏览次数:20820 次

jpa注解唯一和非空失效
@Id @GeneratedValue(strategy=IDENTITY)
   
  @Column(name="ID", unique=true, nullable=false)

  public Integer getId() {
  return this.id;
  }
   
  public void setId(Integer id) {
  this.id = id;
  }
   
  @Column(unique=true, nullable=false)

  public String getLoginName() {
  return this.loginName;
  }
   
  public void setLoginName(String loginName) {
  this.loginName = loginName;
  }
   
  @Column( unique=true, nullable=false)
  public String getLoginPwd() {
  return this.loginPwd;
  }
   
  public void setLoginPwd(String loginPwd) {
  this.loginPwd = loginPwd;
  }
//////////////////////////////////////////////////测试代码
@Test
public void testRelation(){
Configuration cfg=new AnnotationConfiguration().configure("/hibernate.cfg.xml");
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
Transaction tr=session.beginTransaction();
Admin admin=new Admin();
admin.setLoginName("");
admin.setLoginPwd("");
admin.setPrivileges("");
session.save(admin);
tr.commit();

}//目前是无论是空还是重复都添加到数据库里.谁能指点一下
 

------解决方案--------------------
你确定你实体上的注解没错?
------解决方案--------------------
这个标注是用在反向工程中的,只是标记一下,并不会进行检查。