美好的一天! 我尝试使用唯一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);
}
我希望这个测试会抛出异常,因为我尝试保存两个具有相同名称的实体,但它运行正常!
我哪里错了?
答案 0 :(得分:0)
所以,德比很可能忽略了唯一约束。在MySql DB中,一切正常