Spring 3.1.1.RELEASE、Hibernate 4.1.0.Final、JPA 2.0、および MySQL 5.5 を使用しています。Spring アプリケーション コンテキスト ファイル内でトランザクションを次のように定義します。
<jee:jndi-lookup jndi-name="java:jboss/springboard/sbpersistence" id="entityManagerFactory"
expected-type="javax.persistence.EntityManagerFactory" />
<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:jta-transaction-manager />
次のメソッドを持つ Spring サービス クラスがあります。
@Service
@Transactional
public class UserServiceImpl implements UserService
{
@Override
public User create(String firstName,
String middleName,
String lastName,
String userName,
String password,
String url,
Role role,
Organization org,
final Set<Contract> contracts)
{
…
return userDao.save(user);
}
@Override
public User createSampleUser(String firstName,
String middleName,
String lastName,
String userName,
String password,
String url,
Role role,
State state,
List<Product> products,
Date activationDate,
Date expirationDate)
{
…
return create(firstName,
middleName,
lastName,
userName,
password,
url,
role,
sampleDistrict,
contracts);
}
2 番目のメソッドが最初のサービス メソッドを呼び出すことに注意してください。私の質問は、2 番目のメソッド内のすべてをアトミックな作業単位として扱いたいことを示す適切な注釈があるとすれば、それは何ですか? 私の最初のメソッドは自動的に @Transactional であるため、混乱しました。
ありがとう - デイブ