再会!我尝试创建具有唯一 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;
}
}
这是我的单元测试(在内存德比数据库中使用)
@Test
public void create()
{
SimpleEntity entity = new SimpleEntity();
entity.setName("name1");
SimpleEntity entity2 = new SimpleEntity();
entity2.setName("name1");
simpleDao.createOrUpdate(entity);
simpleDao.createOrUpdate(entity2);
}
我希望这个测试会抛出异常,因为我尝试保存两个具有相同名称的实体,但它工作正常!
我哪里错了?