J'ai l'impression de ne pas avoir compris la définition du contexte Conversation.

J'ai actuellement une page avec des requêtes Ajax qui modifient les propriétés de mon entité
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
<a4j:outputPanel id="outputfield-panel">
  <rich:dataTable var="_outputField" value="#{reportTemplateAction.reportTemplate.outputFields}" 
  	rendered="#{not empty reportTemplateAction.reportTemplate.outputFields}">
	<f:facet name="header">
	  <rich:columnGroup>
		<rich:column>
		  <h:outputText value="Champs" />
		</rich:column>
		<rich:column>
		  <h:outputText value="Ordre" />
		</rich:column>
	  </rich:columnGroup>
	</f:facet>
	<rich:column>
	  <h:outputText value="#{_outputField.name}"/>
	</rich:column>
	<rich:column>
	  <h:selectOneRadio value="#{_outputField.sort}" layout="lineDirection">
		<f:selectItem itemValue="0" itemLabel="NO" />
		<f:selectItem itemValue="1" itemLabel="ASC" />
		<f:selectItem itemValue="2" itemLabel="DSC" />
		<a4j:support event="onchange" reRender="outputfield-panel" />
	  </h:selectOneRadio>
	</rich:column>         
  </rich:dataTable>
</a4j:outputPanel>
J'ai également une Action qui référence mon entité

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
@Stateful
@Name("reportTemplateAction")
@Scope(ScopeType.CONVERSATION)
public class ReportTemplateActionImpl extends Action implements ReportTemplateAction {
 
protected ReportTemplate reportTemplate;
public ReportTemplate getReportTemplate() {
	return reportTemplate;
}
 
@Begin(join = true)
@Create
public void initialize() {
	if(reportTemplate == null) {
		loadTemplate();
	}
}
 
@End
public void saveReport() {
	ReportTemplate currentTemplate = reportTemplate;
	[...]
	facadeLocator.getReportTemplateFacade().save(currentTemplate);
}
Il me semblait que le contexte Conversation gardait l'état de mon entité en Session puis, à l'aide de l'annotation @End sur une méthode donnée, faisait un commit dans ma base de données.
Or lorsque je modifie une propriété à l'aide d'une requête Ajax, dans ce cas-ci la propriété sort, l'entité est modifiée dans la base de données sans que j'ai appelé la méthode saveReport()

Quelqu'un peut-il m'expliquer pourquoi la modification est faite dans la base de données juste sur un appel Ajax?

je suis débutant avec Seam, j'espère être suffisamment clair.