Announcement Announcement Module
Collapse
No announcement yet.
Unable to add ENUM type to entity Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unable to add ENUM type to entity

    I am new to spring roo and gwt and trying to play with them.
    My environment is Eclipse Kepler 4.3.2, spring-roo-1.2.6.BUILD-SNAPSHOT_20140514, GWT 2.6.0.

    Created a project with name "Course" and with org.rooinaction.course as the topLevelPackage in eclipse and then executed the following script from roo shell (example taken from "Spring Roo in Action" Book)

    =========== Script Start===============
    logging setup --level WARN
    logging setup --level TRACE --package PROJECT
    persistence setup --provider HIBERNATE --database MYSQL --databaseName msrct
    database properties set --key database.username --value root
    database properties set --key database.password --value password

    entity jpa --class ~.model.Course --testAutomatically
    field string --fieldName name
    field number --fieldName listPrice --type java.math.BigDecimal
    field string --fieldName description
    field number --fieldName maximumCapacity --type java.lang.Integer
    field date --fieldName runDate --type java.util.Date --persistenceType JPA_DATE --dateFormat SHORT

    enum type --class ~.model.CourseTypeEnum
    enum constant --name SEMINAR
    enum constant --name CREDIT
    enum constant --name CONTINUING_EDUCATION

    focus --class ~.model.Course

    field enum --fieldName courseType --type ~.model.CourseTypeEnum --enumType STRING

    web gwt setup

    web gwt all --proxyPackage ~.client.proxy --requestPackage ~.client.request
    ===============Script End====================

    While executing the script from the roo shell, I get the following message:
    Updated SRC_MAIN_JAVA/org/rooinaction/course/client/proxy/CourseProxy.java
    The path to type org.rooinaction.course.model.CourseTypeEnum which is used in type org.rooinaction.course.model.Course by the field 'getCourseType' needs to be added to the module's gwt.xml file in order to be used in a Proxy.


    Course.java has defined courseType correctly as shown below:
    ==========

    /**
    */
    @Enumerated(EnumType.STRING)
    private CourseTypeEnum courseType;

    Course_Roo_JavaBean.aj has the getter setter methods defined:
    =====================

    public CourseTypeEnum Course.getCourseType() {
    return this.courseType;
    }

    public void Course.setCourseType(CourseTypeEnum courseType) {
    this.courseType = courseType;
    }
    But the CourseProxy.java doesn't have the corresponding methods defined.

    CourseProxy.java
    ==============
    // WARNING: THIS FILE IS MANAGED BY SPRING ROO.

    package org.rooinaction.course.client.proxy;
    import com.google.web.bindery.requestfactory.shared.Entit yProxy;
    import com.google.web.bindery.requestfactory.shared.Proxy ForName;
    import java.math.BigDecimal;
    import java.util.Date;
    import org.springframework.roo.addon.gwt.RooGwtProxy;

    @ProxyForName(value = "org.rooinaction.course.model.Course", locator = "org.rooinaction.course.server.locator.CourseLocat or")
    @RooGwtProxy(value = "org.rooinaction.course.model.Course", readOnly = { "version", "id" }, scaffold = true)
    public interface CourseProxy extends EntityProxy {

    abstract Long getId();

    abstract String getName();

    abstract void setName(String name);

    abstract BigDecimal getListPrice();

    abstract void setListPrice(BigDecimal listPrice);

    abstract String getDescription();

    abstract void setDescription(String description);

    abstract Integer getMaximumCapacity();

    abstract void setMaximumCapacity(Integer maximumCapacity);

    abstract Date getRunDate();

    abstract void setRunDate(Date runDate);

    abstract Integer getVersion();
    }


    I did try adding the following 2 lines to the ApplicationScaffold.gwt.xml
    <source path="org/rooinaction/course/model/CourseTypeEnum"/>
    <source path="org/rooinaction/course/model"/>

    and then run the following from the roo shell.
    web gwt all --proxyPackage ~.client.proxy --requestPackage ~.client.request


    That doesn't make any difference.

    Can some please tell me how to fix this issue?

    Regards,
    Sreeni




  • #2
    Sorry. I forgot to metion that the application runs fine and displays all the fields except the CourseType filed. The course table does have the course_type filed created.

    Thanks,
    Sreeni

    Comment

    Working...
    X