Tuesday, April 6, 2010

Type Map change corrupt project metadata.

According to Type Map description :For an application running against an Oracle database, you can usually accept the default. Note: You can select the type map only when you first initialize your business components project.


Yet the developer still can change it at any time. At first it shows disabled but if you click something else and click Bussiness Components tab again then you can change it.

If you change it to java, then Entity attributes are generated with types like (BigDecimal instead of oracle.domain.Number, java.sql.Date instead of oracle.domain.Date)
If you change them to oracle types then at some adf components you get ClassCastExceptions.

If you try to chance Type Map to ‘Oracle’ again then you cannot. Even though it shows in project properties changed if you close and re-open it is still ‘Java’.

The only way to change it back to ‘Oracle’ is to open .jpx project file and to manually remove the xml entry --Attr Name="_jbo.TypeMapEntries" Value="Java" –

4 comments:

  1. We had this same problem. Type Map somehow got changed to Java and then every entity with a DBSequence type started generating a build warning Business Components: Unable to find referenced object Object: oracle.jbo.domain.DBSequence If we edited the column without changing anything, jdev removes the attribute Domain="oracle.jbo.domain.DBSequence"
    When we deleted the TypeMapEntries value from the project file then we were back to normal, although jdev still underlines the Domain= attribute in the xml as an error even though it puts it there when you create a new entity.

    ReplyDelete
  2. Hi,

    I am facing the same problem.There is no such entry as Name="_jbo.TypeMapEntries" Value="Java" in the model.jpx file.Still the project-properties dialogue shows the "Type Map" as Java.What can be the issue?.I am using JDeveloper 11.1.1.4.Because of this I am not able to develop any new Business Components.Please help me to resolve this.

    ReplyDelete