Jboss ponent.Instance,除非我在TKITASK中为连接的字段使用FetchType.EAGER)?抱歉,我无法遵循您的所有应用程序逻辑。假设您不尝试创建SeamBean的多个实例,也不使用new对其进行实例化,那么如果您已经确定了组件对话的范围,那
Jboss ponent.Instance,除非我在TKITASK中为连接的字段使用FetchType.EAGER)?抱歉,我无法遵循您的所有应用程序逻辑。假设您不尝试创建SeamBean的多个实例,也不使用new对其进行实例化,那么如果您已经确定了组件对话的范围,那,jboss,seam,pojo,entitymanager,Jboss,Seam,Pojo,Entitymanager,ponent.Instance,除非我在TKITASK中为连接的字段使用FetchType.EAGER)?抱歉,我无法遵循您的所有应用程序逻辑。假设您不尝试创建SeamBean的多个实例,也不使用new对其进行实例化,那么如果您已经确定了组件对话的范围,那么您就不会有谎言。还要确保你开始了对话。请尝试在yourpage.page.xml中使用。抱歉,我完全有可能在这方面完全错了。我在顶部添加了一个解释,说明这种邪恶应该做什么。 <transaction:entity-transaction
ponent.Instance,除非我在TKITASK中为连接的字段使用FetchType.EAGER)?抱歉,我无法遵循您的所有应用程序逻辑。假设您不尝试创建SeamBean的多个实例,也不使用new对其进行实例化,那么如果您已经确定了组件对话的范围,那么您就不会有谎言。还要确保你开始了对话。请尝试在yourpage.page.xml中使用。抱歉,我完全有可能在这方面完全错了。我在顶部添加了一个解释,说明这种邪恶应该做什么。
<transaction:entity-transaction />
<transaction:ejb-transaction />
<persistence-unit name="myEmployee" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/myEmployeeDatasource</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.default_schema" value="MY_PROD"/>
<!-- Only relevant if Seam is loading the persistence unit (Java SE bootstrap) -->
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
<!-- this binds emf to jndi under java namespace - but only for jboss prior to 5.0 - I shouldn't need this. -->
<property name="jboss.entity.manager.factory.jndi.name" value="java:/EntityManagerFactories/myEmployee"/>
</properties>
</persistence-unit>
<persistence:managed-persistence-context name="entityManager"
persistence-unit-jndi-name="java:/EntityManagerFactories/myEmployee"
auto-create="true"/>
(EntityManager)Component.getInstance("entityManager")
@Entity
@Table(name = "TQI_TASK")
@Name("tqitask")
public class TqiTask implements java.io.Serializable {
static Logger log = Logger.getLogger(TqiTask.class);
private Integer sysid;
private TqiActivitySubtype tqiActivitySubtype;
private TqiActivityType tqiActivityType;
// ... more fields, getters and setters
@Name("tQIDayActionBean")
@Transactional(TransactionPropagationType.REQUIRED) //this is latest attempt
@Scope(ScopeType.CONVERSATION)
public class TQIDayActionBean implements Serializable {
static Logger log = Logger.getLogger(TQIDayActionBean.class);
@In(required=true)
EntityManager entityManager;
//this doesn't work either
@DataModel("tqiTasksForOneDay")
@Out(required = false)
private List<TqiTask> tqiTasksForOneDay;
// .... more stuff
// method that should get an entityManager
/**
* tasks are children of tqiActivitySheet, info we need is in tqiActivitySheetV, so use peopleSoftIdSelected and weekSelected.weekSysid
* to get the tqiActivitySheet sysid needed to load the right tasks
* TODO for now lets just get it straight from the db
*/
@SuppressWarnings("unchecked")
@Begin(flushMode=FlushModeType.MANUAL)
public void generateTasksForDayOfWeek() {
log.debug("date to search for: " + this.tqiTaskDate);
this.tqiTasksForOneDay = this.entityManager.createQuery("SELECT t from TqiTask t where t.workDate = ?1 AND t.activitySheetSysid = ?2 order by t.sysid")
.setParameter(1, this.tqiTaskDate).setParameter(2, this.activitySheetSysid).getResultList();
}
getter/setters etc ...
/**
* handle the activity sheet weekly code generation here
*/
@Name("tqiActivitySheetActionBean")
public class TQIActivitySheetActionBean implements Serializable{
static Logger log = Logger.getLogger(TQIActivitySheetActionBean.class);
// tried it here first
// @In
// EntityManager entityManager;
@Out(value="tqiDayActionBeansForTheWeek", required=false)
List<TQIDayActionBean> tqiDayActionBeansForTheWeek;
// List<DaysOfTheWeek> daysOfTheWeekEnum;
private BigDecimal currentlySelectedWeekActivitySheetSysid;
@PostConstruct
public void init(){
log.debug("calling init");
this.tqiDayActionBeansForTheWeek = new ArrayList<TQIDayActionBean>();
this.updateDataWhenWeekChanges();
}
getters/setters more stuff ....