You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openmeetings.apache.org by "seba.wagner@gmail.com" <se...@gmail.com> on 2012/10/13 19:11:07 UTC

Re: svn commit: r1397489 - in /incubator/openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ src/META-INF/ src/org/apache/openmeetings/data/basic/ src/org/apache/openmeetings/persistence/beans/lang/ src/org/apache/openmeetings/web/components/admin/g

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 <so...@apache.org>

> 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
seba.wagner@gmail.com

Re: svn commit: r1397489 - in /incubator/openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ src/META-INF/ src/org/apache/openmeetings/data/basic/ src/org/apache/openmeetings/persistence/beans/lang/ src/org/apache/openmeetings/web/components/admin/g

Posted by Maxim Solodovnik <so...@gmail.com>.
Thanks for pointing this out, forget to correct this part
On Oct 14, 2012 12:11 AM, "seba.wagner@gmail.com" <se...@gmail.com>
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 <so...@apache.org>
>
>> 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
> seba.wagner@gmail.com
>