Thanks for pointing this out, forget to correct this part
On Oct 14, 2012 12:11 AM, "[email protected]" <[email protected]>
wrote:

> Adding a new label + press save results in:
>
> <openjpa-2.2.0-r422266:1244990 nonfatal user error> 
> org.apache.openjpa.persistence.InvalidStateException: Encountered unmanaged 
> object "org.apache.openmeetings.persistence.beans.lang.Fieldvalues@605a28" in 
> life cycle state  unmanaged while cascading persistence via field 
> "org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues.fieldvalues"
>  during flush.  However, this field does not allow cascade persist. You 
> cannot flush unmanaged objects or graphs that have persistent associations to 
> unmanaged objects.
>
>
>  Suggested actions: a) Set the cascade attribute for this field to 
> CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or "persist" or 
> "all" (JPA orm.xml),
>  b) enable cascade-persist globally,
>
>
>  c) manually persist the related field value prior to flushing.
>  d) if the reference belongs to another context, allow reference to it by 
> setting StoreContext.setAllowReferenceToSiblingContext().
> FailedObject: 
> org.apache.openmeetings.persistence.beans.lang.Fieldvalues@605a28
>
>
> Sebastian
>
> 2012/10/12 <[email protected]>
>
>> Author: solomax
>> Date: Fri Oct 12 09:23:41 2012
>> New Revision: 1397489
>>
>> URL: http://svn.apache.org/viewvc?rev=1397489&view=rev
>> Log:
>> MySQL is switched to InnoDB
>> Wicket: language panel is fixed
>>
>> Added:
>>
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java
>> Modified:
>>
>> incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
>>
>> incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml
>>
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java
>>
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java
>>
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldvalues.java
>>
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java
>>
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java
>>
>> Modified:
>> incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
>> URL:
>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml?rev=1397489&r1=1397488&r2=1397489&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
>> (original)
>> +++
>> incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
>> Fri Oct 12 09:23:41 2012
>> @@ -188,6 +188,7 @@
>>         <bean id="omTimeZoneDaoImpl"
>> class="org.apache.openmeetings.data.basic.dao.OmTimeZoneDaoImpl" />
>>         <bean id="statemanagement"
>> class="org.apache.openmeetings.data.user.dao.StateDaoImpl" />
>>         <bean id="fieldLanguageDaoImpl"
>> class="org.apache.openmeetings.data.basic.FieldLanguageDaoImpl" />
>> +       <bean id="fieldValueDaoImpl"
>> class="org.apache.openmeetings.data.basic.FieldValueDaoImpl" />
>>         <bean id="fieldLanguagesValuesDAO"
>> class="org.apache.openmeetings.data.basic.FieldLanguagesValuesDaoImpl" />
>>         <bean id="fieldmanagment"
>> class="org.apache.openmeetings.data.basic.Fieldmanagment" />
>>         <bean id="configurationDaoImpl"
>> class="org.apache.openmeetings.data.basic.dao.ConfigurationDaoImpl" />
>>
>> Modified:
>> incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml
>> URL:
>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml?rev=1397489&r1=1397488&r2=1397489&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml
>> (original)
>> +++
>> incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml
>> Fri Oct 12 09:23:41 2012
>> @@ -89,7 +89,7 @@
>>                         <property name="openjpa.DataCache" value="true"/>
>>                         <!-- QueryCache disabled due to changes outside
>> of JPA doesn't take effect with caching -->
>>                         <property name="openjpa.QueryCache"
>> value="false"/>
>> -                       <property name="openjpa.jdbc.DBDictionary"
>>  value="batchLimit=100,tableType=myisam"/>
>> +                       <property name="openjpa.jdbc.DBDictionary"
>>  value="batchLimit=100"/>
>>                         <property name="openjpa.jdbc.QuerySQLCache"
>>  value="false"/>
>>                 </properties>
>>         </persistence-unit>
>>
>> Modified:
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java?rev=1397489&r1=1397488&r2=1397489&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java
>> (original)
>> +++
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java
>> Fri Oct 12 09:23:41 2012
>> @@ -92,6 +92,19 @@ public class FieldLanguagesValuesDaoImpl
>>                 return flv;
>>         }
>>
>> +       public Fieldlanguagesvalues get(long fieldValuesId, long langId) {
>> +               TypedQuery<Fieldlanguagesvalues> q = em.createNamedQuery(
>> +                               "getFieldLanguagesValuesByValueAndLang",
>> Fieldlanguagesvalues.class);
>> +               q.setParameter("fieldValuesId", fieldValuesId);
>> +               q.setParameter("lang", langId);
>> +               Fieldlanguagesvalues flv = null;
>> +               try {
>> +                       flv = q.getSingleResult();
>> +               } catch (NoResultException e) {
>> +               }
>> +               return flv;
>> +       }
>> +
>>         /*
>>          * (non-Javadoc)
>>          *
>>
>> Added:
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java?rev=1397489&view=auto
>>
>> ==============================================================================
>> ---
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java
>> (added)
>> +++
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java
>> Fri Oct 12 09:23:41 2012
>> @@ -0,0 +1,88 @@
>> +/*
>> + * Licensed to the Apache Software Foundation (ASF) under one
>> + * or more contributor license agreements.  See the NOTICE file
>> + * distributed with this work for additional information
>> + * regarding copyright ownership.  The ASF licenses this file
>> + * to you under the Apache License, Version 2.0 (the
>> + * "License") +  you may not use this file except in compliance
>> + * with the License.  You may obtain a copy of the License at
>> + *
>> + *   http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing,
>> + * software distributed under the License is distributed on an
>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> + * KIND, either express or implied.  See the License for the
>> + * specific language governing permissions and limitations
>> + * under the License.
>> + */
>> +package org.apache.openmeetings.data.basic;
>> +
>> +import java.util.List;
>> +
>> +import javax.persistence.EntityManager;
>> +import javax.persistence.PersistenceContext;
>> +import javax.persistence.TypedQuery;
>> +
>> +import org.apache.openmeetings.data.OmDAO;
>> +import org.apache.openmeetings.data.basic.dao.ConfigurationDaoImpl;
>> +import org.apache.openmeetings.persistence.beans.lang.Fieldvalues;
>> +import org.springframework.beans.factory.annotation.Autowired;
>> +import org.springframework.transaction.annotation.Transactional;
>> +
>> +@Transactional
>> +public class FieldValueDaoImpl implements OmDAO<Fieldvalues> {
>> +       @PersistenceContext
>> +       private EntityManager em;
>> +       @Autowired
>> +       private ConfigurationDaoImpl configurationDaoImpl;
>> +       @Autowired
>> +       private FieldLanguagesValuesDaoImpl flvDaoImpl;
>> +
>> +       public Fieldvalues get(long id) {
>> +               return
>> get(configurationDaoImpl.getConfValue("default_lang_id",
>> +                               Long.class, "1"), id);
>> +       }
>> +
>> +       public Fieldvalues get(Long language_id, long id) {
>> +               TypedQuery<Fieldvalues> q =
>> em.createNamedQuery("getFieldByIdAndLanguage", Fieldvalues.class);
>> +               q.setParameter("id", id);
>> +               q.setParameter("lang", language_id);
>> +               List<Fieldvalues> l = q.getResultList();
>> +               return l == null || l.isEmpty() ? null : l.get(0);
>> +       }
>> +
>> +       public List<Fieldvalues> get(int start, int count) {
>> +               return
>> get(configurationDaoImpl.getConfValue("default_lang_id",
>> +                               Long.class, "1"), start, count);
>> +       }
>> +
>> +       public List<Fieldvalues> get(Long language_id, int start, int
>> count) {
>> +               TypedQuery<Fieldvalues> q =
>> em.createNamedQuery("getFieldByLanguage", Fieldvalues.class);
>> +               //q.setParameter("lang", language_id); //FIXME commented
>> for now
>> +               q.setFirstResult(start);
>> +               q.setMaxResults(count);
>> +               List<Fieldvalues> result = q.getResultList();
>> +               for (Fieldvalues fv : result) {
>> +                       //FIXME ineffective !!!!!!!!!!!!!!!!!!!!
>> +
>> fv.setFieldlanguagesvalue(flvDaoImpl.get(fv.getFieldvalues_id(),
>> language_id));
>> +               }
>> +               return result;
>> +       }
>> +
>> +       public long count() {
>> +               TypedQuery<Long> q = em.createNamedQuery("getFieldCount",
>> Long.class);
>> +               return q.getSingleResult();
>> +       }
>> +
>> +       public void update(Fieldvalues entity, long userId) {
>> +               // TODO Auto-generated method stub
>> +
>> +       }
>> +
>> +       public void delete(Fieldvalues entity, long userId) {
>> +               // TODO Auto-generated method stub
>> +
>> +       }
>> +
>> +}
>>
>> Modified:
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java?rev=1397489&r1=1397488&r2=1397489&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java
>> (original)
>> +++
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java
>> Fri Oct 12 09:23:41 2012
>> @@ -54,6 +54,8 @@ import org.apache.openmeetings.persisten
>>                 + "             AND flv.language_id = 1 AND
>> flv.fieldvalues_id NOT IN (:id_list)")
>>         , @NamedQuery(name="getFieldLanguagesValuesById"
>>                 , query = "SELECT f FROM Fieldlanguagesvalues f WHERE
>> f.fieldlanguagesvalues_id = :id")
>> +       , @NamedQuery(name="getFieldLanguagesValuesByValueAndLang"
>> +               , query = "SELECT f FROM Fieldlanguagesvalues f WHERE
>> f.fieldvalues_id = :fieldValuesId AND f.language_id = :lang AND f.deleted =
>> false")
>>  })
>>  @Table(name = "fieldlanguagesvalues")
>>  public class Fieldlanguagesvalues implements Serializable, OmEntity {
>>
>> Modified:
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldvalues.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldvalues.java?rev=1397489&r1=1397488&r2=1397489&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldvalues.java
>> (original)
>> +++
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldvalues.java
>> Fri Oct 12 09:23:41 2012
>> @@ -33,12 +33,18 @@ import javax.persistence.OneToMany;
>>  import javax.persistence.Table;
>>  import javax.persistence.Transient;
>>
>> +import org.apache.openmeetings.persistence.beans.OmEntity;
>> +
>>  @Entity
>>  @NamedQueries({
>>         @NamedQuery(name = "getFieldCount", query = "SELECT COUNT(fv)
>> FROM Fieldvalues fv WHERE fv.deleted = false ")
>> +       , @NamedQuery(name = "getFieldByIdAndLanguage", query = "SELECT
>> fv FROM Fieldvalues fv " +
>> +               "LEFT OUTER JOIN FETCH fv.fieldlanguagesvalues flv WHERE
>> " +
>> +               "       fv.fieldvalues_id = :id AND fv.deleted = false
>> AND flv.language_id = :lang")
>> +       , @NamedQuery(name = "getFieldByLanguage", query = "SELECT fv
>> FROM Fieldvalues fv WHERE fv.deleted = false") //FIXME no language yet
>>  })
>>  @Table(name = "fieldvalues")
>> -public class Fieldvalues implements Serializable {
>> +public class Fieldvalues implements Serializable, OmEntity {
>>         private static final long serialVersionUID =
>> -3439614511218028085L;
>>         @Id
>>         @Column(name="id")
>>
>> Modified:
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java?rev=1397489&r1=1397488&r2=1397489&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java
>> (original)
>> +++
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java
>> Fri Oct 12 09:23:41 2012
>> @@ -80,7 +80,6 @@ public class GroupsPanel extends AdminPa
>>                                                 form.hideNewRecord();
>>
>> form.setModelObject(organisation);
>>                                                 form.updateView(target);
>> -                                               //target.add(form);
>>                                         }
>>                                 });
>>
>> item.add(AttributeModifier.append("class", "clickable " + ((item.getIndex()
>> % 2 == 1) ? "even" : "odd")));
>>
>> Modified:
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java?rev=1397489&r1=1397488&r2=1397489&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java
>> (original)
>> +++
>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java
>> Fri Oct 12 09:23:41 2012
>> @@ -21,9 +21,10 @@ package org.apache.openmeetings.web.comp
>>  import java.util.Iterator;
>>
>>  import org.apache.openmeetings.data.basic.FieldLanguageDaoImpl;
>> -import org.apache.openmeetings.data.basic.FieldLanguagesValuesDaoImpl;
>> +import org.apache.openmeetings.data.basic.FieldValueDaoImpl;
>>  import org.apache.openmeetings.persistence.beans.lang.FieldLanguage;
>>  import
>> org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues;
>> +import org.apache.openmeetings.persistence.beans.lang.Fieldvalues;
>>  import org.apache.openmeetings.web.app.Application;
>>  import org.apache.openmeetings.web.components.admin.AdminPanel;
>>  import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
>> @@ -60,15 +61,15 @@ public class LangPanel extends AdminPane
>>                 form.showNewRecord();
>>                 add(form);
>>
>> -               final DataView<Fieldlanguagesvalues> dataView = new
>> DataView<Fieldlanguagesvalues>(
>> -                               "langList", new
>> OmDataProvider<Fieldlanguagesvalues>(
>> -
>> FieldLanguagesValuesDaoImpl.class) {
>> +               final DataView<Fieldvalues> dataView = new
>> DataView<Fieldvalues>(
>> +                               "langList", new
>> OmDataProvider<Fieldvalues>(
>> +                                               FieldValueDaoImpl.class) {
>>                                         private static final long
>> serialVersionUID = -6822789354860988626L;
>>
>> -                                       public Iterator<? extends
>> Fieldlanguagesvalues> iterator(
>> +                                       public Iterator<? extends
>> Fieldvalues> iterator(
>>                                                         long first, long
>> count) {
>>                                                 return Application
>> -
>> .getBean(FieldLanguagesValuesDaoImpl.class)
>> +
>> .getBean(FieldValueDaoImpl.class)
>>
>> .get(language.getLanguage_id(), (int) first,
>>
>>       (int) count).iterator();
>>                                         }
>> @@ -76,16 +77,16 @@ public class LangPanel extends AdminPane
>>                         private static final long serialVersionUID =
>> 8715559628755439596L;
>>
>>                         @Override
>> -                       protected void populateItem(final
>> Item<Fieldlanguagesvalues> item) {
>> -                               final Fieldlanguagesvalues flv =
>> item.getModelObject();
>> -                               item.add(new Label("lblId", "" +
>> flv.getFieldvalues_id()));
>> -                               item.add(new Label("name",
>> flv.getFieldvalues().getName()));
>> -                               item.add(new Label("value",
>> flv.getValue()));
>> +                       protected void populateItem(final
>> Item<Fieldvalues> item) {
>> +                               final Fieldvalues fv =
>> item.getModelObject();
>> +                               item.add(new Label("lblId", "" +
>> fv.getFieldvalues_id()));
>> +                               item.add(new Label("name", fv.getName()));
>> +                               item.add(new Label("value",
>> fv.getFieldlanguagesvalue() != null ?
>> fv.getFieldlanguagesvalue().getValue() : null));
>>                                 item.add(new AjaxEventBehavior("onclick")
>> {
>>                                         private static final long
>> serialVersionUID = -8069413566800571061L;
>>
>>                                         protected void
>> onEvent(AjaxRequestTarget target) {
>> -                                               form.setModelObject(flv);
>> +
>> form.setModelObject(fv.getFieldlanguagesvalue());
>>                                                 form.hideNewRecord();
>>                                                 target.add(form);
>>                                         }
>>
>>
>>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> [email protected]
>

Reply via email to