Improving EJB /JPA support in Oracle ADF

1,818 views
Skip to first unread message

fnimphiu

unread,
Jan 4, 2012, 11:36:54 AM1/4/12
to ADF Enterprise Methodology Group
This thread is opened as a branch to "Less xml in ADF and move forward
to Java EE 6 in 12c" opened by Edwin Biemond.

http://groups.google.com/group/adf-methodology/browse_thread/thread/fdf0f2354b17526a

In this thread, I like to focus on EJB / JPA enhancements that you
would want to see in Oracle ADF. From the previous post referenced
above, I took two action items into this thread

Integration with Context and Dependency Injection
======================================
Edwin: "Let's make the DataControl window more smart so it can detect
CDI or stateless annotations. So you can drag it to your page and add
this definitions to the pagedef ( adf binding will still use CDI
etc.)"

More JPA tutorials
=======================================
Adam: "In my opinion, it would be really helpful for people like me if
Oracle were to write 2 tutorials for basic ADF development. These
tutorials would create applications that are functionally identical.
One would be built using
'straight ADF' and the other would use things like JPA, CDI, and JSF
annotations.


Adam, correct me if I am wrong, but I currently interpret "and the
other would use things like JPA, CDI, and JSF annotations" to not use
ADF at all, in which case such a tutorial should be written by the
Java EE people. If you meant to write the other one using ADF with
JPA, CDI, and JSF annotations, then this would make sense to have from
an ADF perspective.

fnimphiu

unread,
Jan 4, 2012, 11:56:56 AM1/4/12
to ADF Enterprise Methodology Group
CDI:
====

From a design point of view I would see this to happen as follows. CDI
annotations (and ADF specific annotations for JPA ?) are added to the
JPA entities. When generating the Bean data Control for the session
facade, the data control will pick this information up and make it
available to the binding through the binding UI hints and properties.
This then would be similar to the way ADF BC works in that settings on
the VO and EO control hints become available to the binding layer
(where EL would be used to wire it up with the JSF component
functionality - like disabled, read-only etc.). The Data Control then
also could enforce validation rules defined with CDI on the JPA (which
is what today you would need to generate XML for).

Edwin Biemond

unread,
Jan 6, 2012, 1:48:09 PM1/6/12
to ADF Enterprise Methodology Group
Hi,

Great plan.

First like to see support for Enum in the adf binding layer. I think
it was impossible to use this in one of the method actions parameters
or as attribute in the entity
Full Support for JPA, I remember not everything was detected or
possible by the the datacontrol generator ( inheritance like mapped
superclasses, abstract etc) . Need to ask somebody what is was.

With now support for validation with wls 12c I only will use the EJB
datacontrol to say I will use the local or remote interface with the
jndi url. This can be overrided in the web.xml in 11gr2
EJB3.1 does not need to have a local or remote interface, so I don't
know exactly how this will effect this. Maybe on the Session Bean just
an Named, local or remote ADF datacontrol annotations.
Only missing then the ADF hint, tooltip and label annotations ( in
pojo maybe also an ADF Id annotation ) . Then I don't need the adf
datacontrol xml at all.

I must say that the resourcebundle on pojo, entity label, tooltip does
not work so well ( table and form ), in adf bc it works perfectly

Off course we want full LOV and query panel support. Maybe in the
query panel, lov also support for lookup fields ( in the search area )
in a listbox ( adf should detect lists in the entities )
Or make the adf jsf query panel or lov component less compact so we
can control it in jsf

I have an example of the EJB lov,
https://github.com/biemond/jdev11g_examples/tree/master/ADF_JavaEJB_DC
also in the adf faces demo or the example of Pino you need to do a lot
to make it working.

the ejb pagination should support parameters, When you have an company
code or land code then it is not possible to use pagination.

Then to the jdeveloper part. ( adf binding are really great and save
me lot of time in making managed beans )
The datacontrol panel/ window should detect the ADF, CDI or EJB
annotations and also display this in the window. When you drag this to
the page it should make a reference to this artifact to the pagedef
and work.

thanks

fnimphiu

unread,
Jan 7, 2012, 2:50:09 PM1/7/12
to ADF Enterprise Methodology Group
> First like to see support for Enum in the adf binding layer. I think
> it was impossible to use this in one of the method actions parameters
> or as attribute in the entity

Where would you want to use Enums? As method arguments? Where would
the View Controller (which is the one providing the arguments) get
access to the Enum from?

> Full Support for JPA, I remember not everything was detected or
> possible by the the datacontrol generator ( inheritance like mapped
> superclasses, abstract etc) . Need to ask somebody what is was.

For anything that doesn't work, we need to have a test case (anyone ?)
and file a bug (which I can do). We need to precisely describe how
things should be changed (use cases?) so the develoer working on the
bug or ER knows what we want

> I must say that the resourcebundle on pojo, entity label, tooltip does
> not work so well ( table and form ), in adf bc it works perfectly

This would need to be changed anyway if annotations are used. So if
there are ADF related annotations, then properties files need to be
generated for this

> the ejb pagination should support parameters, When you have an company
> code or land code then it is not possible to use pagination.

I remember this has been filed as a bug a while ago. The answer then
was that pagination is not possible for method collections. However,
indeed worth checking again

> The datacontrol panel/ window should detect the ADF, CDI or EJB
> annotations and also display this in the window. When you drag this to
> the page it should make a reference to this artifact to the pagedef
> and work.

Here we should be consistent with ADF BC. The annotations should be
detected by the data control but then referenced in the UI through the
UI hints on the pageDef objects

Edwin Biemond

unread,
Jan 8, 2012, 12:00:45 PM1/8/12
to ADF Enterprise Methodology Group
Hi,

I was wrong you can use an Enum in method parameter ( adf binding ) ,
I mostly pass the value from a managed bean.

But when you have an Enum attribute in a class and then generate a
datacontrol on it then jdeveloper generates a kind of collection what
is not usable in a page
like to see an in a output text the value ( with some support for
resource bundles ) and in a inputtext a poplist.

I forgot to mention support for lazy loading, now you need to set
eager and lazy on the right relationship levels.

I will make in a few weeks some jpa test cases ( based on HR ) to know
what is possible or not.

thanks

fnimphiu

unread,
Jan 9, 2012, 6:25:10 AM1/9/12
to ADF Enterprise Methodology Group
thanks Edwin.

On another update:

> the ejb pagination should support parameters, When you have an company
> code or land code then it is not possible to use pagination.

Seems that this has been solved for 12c, at least I found a mail that
mentioned method calls now being treated as accessors

Frank

Edwin Biemond

unread,
Jan 11, 2012, 4:25:12 AM1/11/12
to ADF Enterprise Methodology Group
Also found this restriction , know behaviour in the EJB datacontrol
with EJB Session Bean method which has no parameters and return a list
of entities

If you have an EJB Session Bean method which has no parameters and
return a list of entities then jdeveloper datacontrol generator
generates an access iterator instead of a MethodAccessor

public List<CgRefCodes> getDomain() {
return
em.createNamedQuery("CgRefCodes.findAll").getResultList();
}

When you use this in a pagedef then you have an accessiterator
instead of a methodaction.

First the CgRefCodes entity must have the @Table annotation, ADF does
a row count on the entity, You can't use entities without an table
( sometimes you use a native query and map this to an entity )
Second the nameQuery used in the method does not matter , it does
standard select * from table, even when you have defined a different
named query which contains a where clause. Gives strange results in
page
third when you use setParameter on the
em.createNamedQuery("CgRefCodes.findAll") then it tries to set this
parameter on its own JQL and then get a exception that the bind
variable cant be found.

Would be great that the EJB datacontrol checks for @table on the
return entity and if EJB session bean method without parameters uses
findAll named query
else generate MethodAccessor in the datacontrol.

thanks

fnimphiu

unread,
Jan 16, 2012, 10:44:49 AM1/16/12
to ADF Enterprise Methodology Group
All,

is this going to continue between Edwin and myself of are others
interested to join this discussion as well? If not then Edwin and I
may want to take this work offline at a specific point to have a
direct communication and frequently inform the EMG about the current
status.

Frak

Amr Gawish

unread,
Jan 16, 2012, 4:52:16 PM1/16/12
to adf-met...@googlegroups.com
Hi Frank,
I'm watching the topic passionately, however my contribution is limited because Edwin covered all the topics I could think of right now.
I'll add more If I found any, in the mean time if there any help I can provide, please don't hesitate to ask.

Best Regards,
Amr Gawish
Senior Oracle Middleware Consultant
     




--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com

All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/).  Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).

Rommel Pino

unread,
Jan 16, 2012, 11:07:04 AM1/16/12
to adf-met...@googlegroups.com
Hi Frank,

We are interested to join this discussion as well but we have some more urgent task that needs to be prioritized at the moment. I believe it would be better to continue the discussion here on EMG.

my view,
Rommel Pino

On Mon, Jan 16, 2012 at 6:44 PM, fnimphiu <frank.n...@googlemail.com> wrote:

Edwin Biemond

unread,
Jan 17, 2012, 9:47:31 AM1/17/12
to ADF Enterprise Methodology Group
An another issue

for an ejb datacontrol you can provide an t3 url and jndi in the
datacontrol xml ( default localhost ) and with 11gR2 you also get an
env-entry in the web.xml to override it.instead of changing the
datacontrol with ANT
<env-entry>
<env-entry-name>ScottSessionEJB-provider-url</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>t3://127.0.0.1:7101</env-entry-value>
</env-entry>

this is cool,

but what I don't understand, why jdeveloper always try to add an ejb
link in the web.xml, when you drag an ejb dc method to a page. ADF
don't need it and when you don't configure the weblogic.xml with this
ejb link you will get an deployment error.

Also it would be great to have an Lov which is based on a EJB
datacontrol which does not work on the Foreign Column.
For example in the base entity you can have besides the FK attribute ,
a transient attribute which display the name of the FK object. On this
attribute you want the LOV button and after a value is selected in the
LOV you want to map the name of the lov entity to this transiet base
attribute and also update the FK attribute with the PK of the lov
entity.
In most cases you won't want to display the id attributes

thanks

fnimphiu

unread,
Jan 17, 2012, 10:58:58 AM1/17/12
to ADF Enterprise Methodology Group
Okay, lets keep the discussion on EMG then

STEVEN DAVELAAR

unread,
Jan 18, 2012, 2:57:12 AM1/18/12
to adf-met...@googlegroups.com, Edwin Biemond
Edwin, Frank

In a sound OO domain model there is no such thing as a foreign key attribute.
The department object has a manager property which is of type Employee, the manager drop down list or LOV should update this object, not some transient attribute.

ADF binding has some support for this through the dataProvider property which retrurns the underlying object from the DCDataRow, but it still doesn't work out-of -the-box.
So, my improvement would be to have simple drag-and-drop support to create a choice list that updates an object rather than a primitive type like String or Number.

Steven.
--

Steven Davelaar| Technology Director | Oracle Consulting
Tel +31 30 669 8113 | Fax +31 30 669 9966
Oracle Nederland BV | Rijnzathe 6, 3454 PV De Meern, The Netherlands
PO Box 147, 3454 ZJ De Meern,The Netherlands | KvK nr. 30096087
Oracle Expert Services | JHeadstart

Lynn Munsinger

unread,
Jan 18, 2012, 2:59:46 PM1/18/12
to adf-met...@googlegroups.com
Thanks for the continued interest on this topic. I have spoken with development about this and we have some ideas and even some good news to share with you. Once I return to my office on Friday, I'll write up my notes and update this thread. Stay tuned.

Regards,
Lynn Munsinger
ADF Product Management

Shay Shmeltzer

unread,
Jan 19, 2012, 5:30:57 PM1/19/12
to adf-met...@googlegroups.com
One question for those who are using EJB backend for their ADF applications.
Are you aiming to use stateful or stateless EJBs?

In the past we mostly pointed developers to using stateless EJBs, but we
are looking to possibly default future behavior around stateful EJBs (a
little bit more aligned with the ADF way of working).

So what would be your preferences?

Thanks
Shay

Edwin Biemond

unread,
Jan 20, 2012, 9:41:39 AM1/20/12
to ADF Enterprise Methodology Group

Hi Shay,

I always use Stateless session beans and pass on the master entity
together with all the child Objects.
With the one to many jpa annotations I can control the merge behavior
and also I can do some checks or change something in the merge method.

For web services together with ws proxy clients it works and behaves
the same as ejb stateless session bean.

By the way ,
can you also look at the default refresh rate of a method iterator
( pojo , ejb) default refresh fires the method so many times, If
needed is in most cases the best option. Don't think I say this
behavior with adf bc.


Thanks

fnimphiu

unread,
Jan 20, 2012, 11:25:52 AM1/20/12
to ADF Enterprise Methodology Group

Edwin:

"I always use Stateless session beans and pass on the master entity
together with all the child Objects. "

Out of curiosity: If you develop EJBs to be exposed as a SOAP WS, do
you change this for lighter weight download streams ?

Frank

Edwin Biemond

unread,
Jan 21, 2012, 11:26:55 AM1/21/12
to ADF Enterprise Methodology Group

Hi,

We use ejb session beans for SOA suite instead of a db adapter and
also use the same ejb in the task flows.
I only expose these ejb as a web service ( contract first ) when it
has to be called from an other domain. For example the finance domain
cannot call the retail ejbs. Then the finance task flows calls these
retail web services .

Also we call web services in cases of bpel etc.

Thanks

Nick Aiva

unread,
Jan 22, 2012, 4:15:53 AM1/22/12
to adf-met...@googlegroups.com
Having auto complete features when editing jpql queries just as the sql equivalents would save some time! 

Edwin Biemond

unread,
Jan 24, 2012, 10:02:07 AM1/24/12
to ADF Enterprise Methodology Group
Hi,

I am reading a blog of Arun Gupta about CDI events
http://blogs.oracle.com/arungupta/entry/totd_145_cdi_events_a

and thinking how CDI events and ADF Contextual Events can work
together.
Don't know if you already have some ideas about this subject.

but maybe it can work like this.

When you put an event element on a methodaction in the pagedef then it
will also become a CDI producer
So in a managed bean you use an Observes annotation on a method which
will capture the event.

or the other way around

on managed bean method use @Inject and "fire" and this can be also
captured by the already know ADF event capturing mechanism

But it would be also nice to see all the adf and cdi events just like
they have in netbeans

"Inspect CDI" action to better support CDI Events. Try Inspect CDI
action on an event declaration and you will get list of observer
methods and vice versa: on an event observer method you can inspect
list of event declarations which are being observed by that method.

thanks

fnimphiu

unread,
Jan 24, 2012, 12:07:18 PM1/24/12
to ADF Enterprise Methodology Group
Edwin,

lets do one at a time. We can follow up on ctx events later. Another
idea I discussed internally is to expose a managed bean binding in the
binding layer, in which case you don't need to go into the adventures
of CDI (note that as much as I appreciate CDI, I like to keep the non
Java EE savvyy developers in mind) - Lets defer this action until we
get the EJB stuff fixed

Lynn Munsinger in the team will follow up on the EJB / JPA
improvements in JDeveloper/ADF. While in HQ this week I met with the
OEPE team who currently work on implementing ADF binding for their
next release. I shared the ideas of this thread with them, especially
as I see OEPE addressing developers with a EJB background more
directly). I would not expect OEPE to have all the annotations stuff
in there in its initial release of ADF binding because they are not
working on a 12c code base yet, but I'll keep in touch with them.

D0natas

unread,
Jan 25, 2012, 5:42:25 AM1/25/12
to adf-met...@googlegroups.com
Hello Frank,

Could you address the following to the development please:

1) Java bean is annotated with @PageFlowScope(name = "name of the page flow")

2) Mouse-left click on a bean class -> create data control -> data
control based on the bean is created. It's ok how it works in
JDveloper now, especially in release 2.

3) The factory takes care about @PageFlowScope annotation and returns
an instance of a bean from the scope specified.


The same principle might be applied to the standard JEE (JEE5 or JEE6)
annotations too.

The main point is: a factory implementation behind a data control is
aware of them and returns (creates or retrieves)
an appropriate instance.

To come back to the subject of the discussion: i would expect from the
factory behind a data control to take care about
@Stateless (mappedName="ejb/nameJNDI") annotation and to return the
appropriate instance.

Regards,

Donatas

2012/1/24 fnimphiu <frank.n...@googlemail.com>:

Lynn Munsinger

unread,
Jan 27, 2012, 2:58:21 PM1/27/12
to adf-met...@googlegroups.com
Okay my friends, here is an update.

First, we do have two different developer guides based on two different sample applications, hopefully you all have seen the Java EE + ADF data control + ADF Faces one:
http://docs.oracle.com/cd/E24382_01/web.1112/e17272/toc.htm

Edwin, you suggested that there are different types of accessors created for different named queries - but I've confirmed that queries are treated the same for findAll or those with parameters, so you shouldn't be seeing this behavior - what version are you using? Or if I'm not understanding you, please send me the steps to replicate what you're seeing. Also, the ejb-link in the web.xml thing is probably a bug - I'll test that out and file a bug for that.

LOV support is slated for a future release. What would you think about alleviating the need for developers to define the LOV explicitly and just defaulting any foreign key to an LOV (for example when Employees and Departments entities are created, DeptNo would be created as an LOV with Departments.DeptNo values). The developer could then set the display name or tweak other settings as needed.

And we have implemented the ability for CDI to be used for validation rules and control hints (so Edwin, your getDomain() would be an accessor). This might be coming in a future release at a future time (vagueness intended). What functionality beyond control hints and validation rules (and LOVs) are you expecting the data control to pick up?

Additionally, we'll be (optionally) generating annotations for sequences in the "Create Entities from Tables" wizard. So the table and sequence_generator annotations (and the other related settings) will be configurable in the wizard. Are you all using this wizard? Or crafting your entities piecemeal?

Thanks for your thoughts on this, it's appreciated.
Lynn Munsinger
Oracle JDeveloper & ADF Product Management

Lynn Munsinger

unread,
Jan 27, 2012, 3:14:50 PM1/27/12
to adf-met...@googlegroups.com
Also, as Shay eludes to...a switch to using stateful session beans to leverage the atomic transaction capabilities that we are familiar with in ADF BC, using the entity's TransactionAttribute annotation. For example:

The stateful case, whether using a stateful Session bean or a Java service facade, is the most straightforward for the user. The Create operation under an accessor, whether it be a top-level accessor like 'departmentsFindAll' or a detail accessor like the employeesList owned by a department, performs two tasks. It creates a new instance of the entity, using the entity's default constructor, and it adds it to the context master. In the case of a top-level accessor, this context master is the data control itself, and so it calls the persistEntity() method. For a true master-detail accessor, it calls the AddMethod associated with the accessor method on the JPA entity, such as Departments.addEmployees(). In a stateful case involving an EXTENDED persistence context (available for stateful session beans only), users can continue to edit the newly created instance and all modifications will be persisted when the user invokes the Commit operation.

What this all would mean for the developer is much more symmetry between the ADFbc world and the JPA-based data control.

Regards,

Edwin Biemond

unread,
Jan 29, 2012, 1:16:19 PM1/29/12
to ADF Enterprise Methodology Group
Hi Lynn,

Thanks for the update.

I did my tests mostly on 11gR1 ps3 , the new version is no option
because the other FMW products are supported on this R2 release.
Hope to see in PS5 all the JPA fixes of the R2 version.

I did all test on the latest jdeveloper R2 version and I forgot how
well it solved most of my issues.

here is my 11gR2 update
Solved in version 11.1.2.1.38.60.81

the remote or local ejb link is added to the weblogic.xml but I don't
have any problem with deployment without the weblogic.xml deployment
descriptor ( in ps3 I have )
<ejb-ref>
<ejb-ref-name>ejb/HrRemote</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<remote>nl.amis.jpa.model.services.HrRemote</remote>
<ejb-link>HrRemote</ejb-link>
</ejb-ref>
<ejb-local-ref>
<ejb-ref-name>ejb/local/Hr</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>nl.amis.jpa.model.services.HrLocal</local>
<ejb-link>Hr</ejb-link>
</ejb-local-ref>


Labels added on entity attributes in the datacontrol wizard is working
fine on tables.
and more important there is no xml for the entity when you use the
default values.
validation on fields also works fine.

Very interesting is this information message,
<UIXEditableValue> <_isBeanValidationAvailable> A Bean Validation
provider is not present, therefore bean validation is disabled
Love to see this release on weblogic 12c just like OEPE.


I found some new issues on the R2 release.

I had an adf table on the HR departments which shows department with
its manager. Then it goes wrong when there is no manager ( optional
column ) it crashes


<28-jan-2012 21:04:48 uur CET> <Warning> <Socket> <BEA-000449>
<Closing socket as no data read from it on 127.0.0.1:50.635 during the
configured idle timeout of 5 secs>
<CoreRenderer> <encodeEnd>
java.util.NoSuchElementException
at java.util.ArrayDeque.removeFirst(ArrayDeque.java:251)
at java.util.ArrayDeque.pop(ArrayDeque.java:480)
at
oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.removeCachedReadOnly(EditableValueRenderer.java:
414)
at
oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.afterEncode(LabeledInputRenderer.java:
139)
<FaceletViewHandlingStrategy> <handleRenderException> Error Rendering
View[/allDepartments]
javax.el.PropertyNotFoundException: //C:/oracle/JDevR2/jdeveloper/
system11.1.2.1.38.60.81/o.j2ee/drs/JPA/ViewControllerWebApp.war/
allDepartments.jsf @67,60
value="#{row.departmentManager.bindings.employeeId.inputValue}":
Target Unreachable, 'departmentManager' returned null
at
com.sun.faces.facelets.el.TagValueExpression.isReadOnly(TagValueExpression.java:
122)
at
oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer._getUncachedReadOnly(EditableValueRenderer.java:
476)
at
oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.cacheReadOnly(EditableValueRenderer.java:
406)
at
oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.beforeEncode(LabeledInputRenderer.java:
128)


When I set the cache to None in the persistence property editor
( cause of triggers and toad data changes ) then its get this value
Cache setting to None leads to value="" instead of this value
<property name="eclipselink.cache.type.default" value="NONE"/>


Entities from tables generator goes wrong on HR department / employee.
Don't know it myself either but what jdev generates is not good
( manager , department , manager with employees )


The EJB Java Service Facade use a jdbc url and I cannot select
datasource in the wizard, it should use the non jta datasource.

use this
<persistence-unit name="ModelLocal" transaction-
type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</
provider>
<non-jta-data-source>java:/app/jdbc/jdbc/hrDS</non-jta-data-
source>
<class>nl.amis.jpa.model.entities.Departments</class>
<class>nl.amis.jpa.model.entities.Employees</class>
<properties>
<property name="eclipselink.logging.thread" value="false"/>
<property name="eclipselink.logging.session" value="false"/>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.cache.type.default" value="NONE"/>
<property name="eclipselink.cache.shared.default" value="false"/
>
<property name="javax.persistence.nonJtaDataSource" value="java:/
app/jdbc/jdbc/hrDS"/>
<property name="eclipselink.logging.logger"
value="DefaultLogger"/>
</properties>
</persistence-unit>

instead of this

<persistence-unit name="ModelLocal" transaction-
type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</
provider>
<class>nl.amis.jpa.model.entities.Departments</class>
<class>nl.amis.jpa.model.entities.Employees</class>
<properties>
<property name="javax.persistence.jdbc.driver"
value="oracle.jdbc.OracleDriver"/>
<property name="javax.persistence.jdbc.url"
value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="javax.persistence.jdbc.user" value="hr"/>
<property name="javax.persistence.jdbc.password"
value="221CE6B0A87AC61AE68FF3A130F7F666"/><property
name="eclipselink.logging.thread" value="false"/>
<property name="eclipselink.logging.session" value="false"/>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.cache.type.default" value="NONE"/>
<property name="eclipselink.cache.shared.default" value="false"/
>
<property name="eclipselink.logging.logger"
value="DefaultLogger"/>
</properties>
</persistence-unit>


Commit of the Java Service Facade does not do a commit. I got this
error and I don't see the update statement in the eclipselink logging.

[7120:2860:13918471:ERROR:syncer_util.cc(781)] Server update doesn't
match local data with same version. A bug should be filed. Entry:
metahandle: 4406, base_version: 1327786969250388, server_version:
1327786969250388, server_position_in_parent: 0, local_external_id: 0,
mtime: Saturday, January 28, 2012 10:40:13 PM, server_mtime: Saturday,
January 28, 2012 10:40:13 PM, ctime: Saturday, January 28, 2012
10:40:13 PM, server_ctime: Saturday, January 28, 2012 10:40:13 PM, id:
sZ:ADqtAZwd8AP9jsRf0mQUsAQuXDs8Gl3GDcXM+SrfTNmxCzGPfD5s416DGhaE
+mc7Ckovzd0XLYQ/tMbeEsoMIQi3ndYaxLvcZQ==, parent_id:
sZ:ADqtAZxYfB1uBDlEFbmGIEz2ALA+Uvq9nDnbHT2E+Un8ArVFf6z4yD8MkfPnd0bmx/
HXj6ty54l4ccJQVPu4LquMIJH4WMnV/w==, server_parent_id:
sZ:ADqtAZxYfB1uBDlEFbmGIEz2ALA+Uvq9nDnbHT2E+Un8ArVFf6z4yD8MkfPnd0bmx/
HXj6ty54l4ccJQVPu4LquMIJH4WMnV/w==, prev_id:
sZ:ADqtAZwd8AP9jsRf0mQUsAQuXDs8Gb4J47t/MsDZfVD9USHK62bo5LyKR7+blaOrVNh/
a+NX2G2YczwbwUMhQzt/SmGkd4RvfQ==, next_id:
sZ:ADqtAZwd8AP9jsRf0mQUsAQuXDs8GnrEfCeKkaG3JWiR4UthXAKNMe5PYV53GJJw/
e7KBPxAoOsLXXTPwEELIXF7vlGYlZS/5A==, Flags: non_unique_name:
autofill_entry|pc1%3At1%3A26%3Ait1|270, server_non_unique_name:
autofill_entry|pc1%3At1%3A26%3Ait1|270, unique_server_tag: ,
unique_client_tag: BOz7vJKNsCDZJOMgZOMBjLbHc14=, specifics: %8A%BF%0F
%1D%0A%0Dpc1%3At1%3A26%3Ait1%12%03270%18%C0%92%E7%EE%BB%C6%85%17,
server_specifics: %8A%BF%0F%1D%0A
%0Dpc1%3At1%3A26%3Ait1%12%03270%18%C0%92%E7%EE%BB%C6%85%17, TempFlags:
Update: id: Z:ADqtAZwd8AP9jsRf0mQUsAQuXDs8Gl3GDcXM
+SrfTNmxCzGPfD5s416DGhaE+mc7Ckovzd0XLYQ/tMbeEsoMIQi3ndYaxLvcZQ==,
parent_id: Z:ADqtAZxYfB1uBDlEFbmGIEz2ALA+Uvq9nDnbHT2E
+Un8ArVFf6z4yD8MkfPnd0bmx/HXj6ty54l4ccJQVPu4LquMIJH4WMnV/w==, version:
1327786969250388d, mtime: 1327786969250d (Saturday, January 28, 2012
10:42:49 PM), ctime: 1327786813073d (Saturday, January 28, 2012
10:40:13 PM), name: autofill_entry|pc1%3At1%3A26%3Ait1|270,
sync_timestamp: 0d,


When I add a new attribute like managerId on department is not
detected in the jpa datacontrol editor, need to reboot jdev. The
DataControl window show the new attribute.

When I add an employee combo box on the managerId attribute on
department entity ( in a adf table page ) then it generates a combobox
on employees but the whole adf department table is in readonly mode.
I need to remove the binds attribute on the managerID then it works
again.

<tree IterBinding="departmentsFindAllIterator"
id="departmentsFindAll">
<nodeDefinition DefName="nl.amis.jpa.model.entities.Departments"
Name="departmentsFindAll0">
<AttrNames>
<Item Value="departmentId"/>
<Item Value="departmentName"/>
<Item Value="locationId"/>
<Item Value="managerId" Binds="managerId"/>
</AttrNames>
</nodeDefinition>
</tree>

<list IterBinding="departmentsFindAllIterator" id="managerId"
DTSupportsMRU="false"
SelectItemValueMode="ListObject" StaticList="false"
ListIter="employeesFindAllIterator">
<AttrNames>
<Item Value="managerId"/>
</AttrNames>
<ListAttrNames>
<Item Value="employeeId"/>
</ListAttrNames>
<ListDisplayAttrNames>
<Item Value="lastName"/>
</ListDisplayAttrNames>
</list>


I would like to have a combobox on the employee ( manager ) attribute
of the department entity instead of adding of using the managerid
attribute or showing the employee manager attributes .
now I need to add managerId to the department entity and make a
combobox on this.

and off course love to see all this fixes on a R1 patch set release.

keep up the good work.
Reply all
Reply to author
Forward
0 new messages