良い一日!一意の ID と一意の名前を持つエンティティを作成しようとしています。そう、
@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;
}
}
そして、これが私の単体テストです(メモリ内ダービー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);
}
2 つのエンティティを同じ名前で保存しようとしたため、このテストで例外がスローされることを期待していますが、問題なく動作します。
どこが間違っていますか?