Hibernate独特的注释不起作用

时间:2013-07-03 12:50:09

标签: hibernate jpa

美好的一天! 我尝试使用唯一ID和唯一NAME执行实体。 所以,

@MappedSuperclass
public class BaseEntityImpl implements Serializable, BaseEntity
{
  @Id
  @GeneratedValue
  protected Long id;

  @Column(unique = true)
  protected String name;
//here are getters and setters
}

@Entity
public class SimpleEntity extends BaseEntityImpl
{ 
}

这是我的DAO

@Transactional(propagation = Propagation.MANDATORY)
public class SimpleDaoImpl extends HibernateDaoSupport implements SimpleDao
{
   public SimpleEntity createOrUpdate(SimpleEntity entity)
   {
       getSession().saveOrUpdate(entity);
       return entity;
   }
}

这是我的单元测试(在内存中使用derby db)

@Test
public void create()
{
    SimpleEntity entity = new SimpleEntity();
    entity.setName("name1");

    SimpleEntity entity2 = new SimpleEntity();
    entity2.setName("name1");

    simpleDao.createOrUpdate(entity);
    simpleDao.createOrUpdate(entity2);
}

我希望这个测试会抛出异常,因为我尝试保存两个具有相同名称的实体,但它运行正常!

我哪里错了?

1 个答案:

答案 0 :(得分:0)

所以,德比很可能忽略了唯一约束。在MySql DB中,一切正常