我有以下看似随机发生的异常:
NHibernate.Exceptions.GenericADOException: could not execute query
[ select businesspr0_.BusinessProcessID as col_0_0_, businesspr0_.ProcessNumber as col_1_0_, businesspr1_.Name as col_2_0_, businesspr0_.DateCreated as col_3_0_, actor2_.DisplayName as col_4_0_, usergroup3_.Name as col_5_0_, processele5_.Name as col_6_0_ from BusinessProcess businesspr0_ inner join BusinessProcess businesspr1_ on businesspr0_.DefinitionID=businesspr1_.BusinessProcessID inner join Actor actor2_ on businesspr0_.ActorCreatedID=actor2_.ActorID left outer join UserGroup usergroup3_ on businesspr0_.UserGroupCreatedID=usergroup3_.UserGroupID left outer join Actor usergroup3_1_ on usergroup3_.UserGroupID=usergroup3_1_.ActorID inner join ActiveElement activeelem4_ on businesspr0_.BusinessProcessID=activeelem4_.BusinessProcessID inner join ProcessElement processele5_ on activeelem4_.ProcessElementID=processele5_.ProcessElementID inner join ProcessEmployees processemp6_ on businesspr0_.BusinessProcessID=processemp6_.BusinessProcessID inner join Actor actor7_ …Run Code Online (Sandbox Code Playgroud) 我使用 spring 3.0.7、JUnit 4.11 和 DBUnit 2.4.9。我正在尝试在保存未指定多对一关系的实体(设置为空)时测试拖曳异常。这是实体:
<class name="DistributionPoint" table="distribution_point">
<id name="id" unsaved-value="null" type="java.lang.Long">
<column name="id"></column>
<generator class="hilo"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="name" length="255"></column>
</property>
<property name="description" type="java.lang.String">
<column name="description" length="1024"></column>
</property>
<property name="image" type="binary">
<column name="image"></column>
</property>
<many-to-one name="site" class="Site">
<column name="siteId" not-null="true"></column>
</many-to-one>
</class>
Run Code Online (Sandbox Code Playgroud)
我创建了以下测试:
@TransactionConfiguration(defaultRollback=false, transactionManager="transactionManager")
//@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/spring/mysql-test-context.xml" })
public class MysqlDistributionPointTest extends AbstractDatabaseTest {
Run Code Online (Sandbox Code Playgroud)
AbstractDatabaseTest 扩展了 AbstractTransactionalJUnit4SpringContextTests。
测试方法为:
@Test(expected=org.hibernate.PropertyValueException.class)
public void testSaveWithoutSite() {
// set up DP
DistributionPoint distributionPoint = new DistributionPoint(); …Run Code Online (Sandbox Code Playgroud)