ユーザーが複数の人にメッセージを送信できるという要件に取り組んでいます。これらのメッセージをメッセージ テーブルに保存する必要があります。
オブジェクトの永続化に JPA entityManager を使用し、永続化プロバイダーとして Hibernate と Spring 宣言型トランザクション管理を使用しています。
persist() メソッドを 3 回実行しても、テーブルに 1 行しか保存されません。すべてのメッセージを保存するにはどうすればよいかわかりません。例外メッセージは表示されません。
以下は、applicationContext.xml での宣言型トランザクション管理構成です。
<tx:advice id="txAdvice" >
<tx:attributes>
<tx:method
name="*"
propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut
id="messageServiceOperation"
expression="execution(* com.abhinow.message.services.*.*(..))" />
<aop:advisor
advice-ref="txAdvice"
pointcut-ref="messageServiceOperation" />
</aop:config>
以下は、私のサービスクラス MessageService.java のコードです
private void saveMultipleMessages(SentMessage message) {
String[] toAddresses = message.getMultipleDestinations().split(",");
for(String to: toAddresses) {
message.setTo(to);
saveMessage(message);
}
}
public void saveMessage(SentMessage message) {
messageRepository.saveSentMessage(message);
}
以下は私の MessageRepository.java のコードです
@Repository
public class MessageRepository {
@PersistenceContext
EntityManager entityManagerFactory;
public void saveSentMessage(SentMessage message) {
entityManagerFactory.persist(message);
}
}
どんな助けでも大歓迎です。前もって感謝します