MySQL 5.5 データベースで Hibernate 4.0.1.Final を使用しています。私はJavaコンソールアプリを書いています。JUnit テストで、テストが失敗するのに問題があります。これがテスト中の私のモデルです…</p>
@Entity
@Table(name = "ic_domain")
public class Domain {
@Id
@Column(name = "DOMAIN_ID")
private String domainId;
@OneToOne(fetch = FetchType.EAGER, targetEntity = Organization.class)
@JoinColumn(name = "ORGANIZATION_ID")
private Organization org;
と
@Entity
@Table(name = "ic_organization")
public class Organization {
@Id
@Column(name = "ORGANIZATION_ID")
private String organizationId;
私の問題は、私の JUnit テストで、存在しない外部キーを作成しようとしていて、保存時に失敗することを期待していますが、失敗することはありません。これがJUnitテストです
@Test
public void testSaveDomainWithUnmathcedOrg() {
final Organization org = createDummyOrg();
// Create an org id that doesn't exist.
org.setOrganizationId("ZZZZ");
final Domain domain = new Domain();
final String id = UUID.randomUUID().toString().replace("-", "");
domain.setDomainId(id);
domain.setName(org.getName());
domain.setOrg(org);
m_domainDao.saveOrUpdate(domain);
} // testSaveDomainWithUnmatchedOrg
DAOのコードは
public void saveOrUpdate(final Domain domain) {
final Session session = sessionFactory.getCurrentSession();
session.saveOrUpdate(obj);
} // saveOrUpdate
「session.saveOrUpdate」で失敗するべきではありませんか? どうやって作るの?基礎となるデータベースをダミーデータで汚染したくないので、JUnit テストで自分のデータをコミットしたくありませんが、それが唯一の方法である場合は、そうしてください。