isis-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Cameron <steve.cameron...@gmail.com>
Subject Re: Datanucleus issues
Date Tue, 01 Sep 2015 13:12:51 GMT
Here a two scenarios each with a Parent and Child Type, they should give
the same result

1. Concrete Parent Type

@PersistenceCapable()
public class ConcreteParentType {

    @PrimaryKey()
    @Persistent(valueStrategy=IdGeneratorStrategy.INCREMENT)
    private Long id;

    private String name;

    @Column(allowsNull="true")
    @MemberOrder(sequence = "1")
    public String getName() {
        return name;
    }

    public void setName(final String name) {
        this.name = name;
    }

}

@PersistenceCapable()
public class ChildTypeOfConcreteParentType extends ConcreteParentType {


    private String description;

    @Column(allowsNull="true")
    @MemberOrder(sequence = "2")
    public String getDescription() {
        return description;
    }

    public void setDescription(final String description) {
        this.description = description;
    }

}

2. Abstract Parent Type

@PersistenceCapable()
@Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
abstract class AbstractParentType {

    @PrimaryKey()
    @Persistent(valueStrategy=IdGeneratorStrategy.INCREMENT)
    private Long id;

    private String name;

    @Column(allowsNull="true")
    @MemberOrder(sequence = "1")
    public String getName() {
        return name;
    }

    public void setName(final String name) {
        this.name = name;
    }

}

@PersistenceCapable()
public class ChildTypeOfAbstractParentType extends AbstractParentType {

    private String description;

    @Column(allowsNull="true")
    @MemberOrder(sequence = "2")
    public String getDescription() {
        return description;
    }

    public void setDescription(final String description) {
        this.description = description;
    }

}

In the seond scenario the name property doesn't appear, only the
description.

The DomainService class for testing these two scenarios in the viewer is
this:

@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
@DomainServiceLayout(named = "DataNucleus", menuBar = MenuBar.PRIMARY,
menuOrder = "100")
public class Menu {



    public ChildTypeOfConcreteParentType
createChildTypeOfConcreteParentType() {
        ChildTypeOfConcreteParentType childType = null;
        try {
            childType =
container.newTransientInstance(ChildTypeOfConcreteParentType.class);
            childType.setName("ChildTypeOfConcreteParentType");
            childType.setDescription("something descriptive");
            container.persistIfNotAlready(childType);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return childType;
    }

    public ChildTypeOfAbstractParentType
createChildTypeOfAbstractParentType() {
        ChildTypeOfAbstractParentType childType = null;
        try {
            childType =
container.newTransientInstance(ChildTypeOfAbstractParentType.class);
            childType.setName("ChildTypeOfAbstractParentType");
            childType.setDescription("something descriptive");
            container.persistIfNotAlready(childType);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return childType;
    }



    @javax.inject.Inject
    DomainObjectContainer container;

}


On Tue, Sep 1, 2015 at 10:42 PM, Stephen Cameron <steve.cameron.62@gmail.com
> wrote:

> Hi Jeroen, just noticed this after sending second update (winge).
>
> I'll send a test case now.
>
> On Tue, Sep 1, 2015 at 10:29 PM, Jeroen van der Wal <jeroen@stromboli.it>
> wrote:
>
>> Hi Stephen,
>>
>> Can you share some code to support your case?
>>
>> Cheers,
>>
>> Jeroen
>>
>> On 1 September 2015 at 12:39, Stephen Cameron <steve.cameron.62@gmail.com
>> >
>> wrote:
>>
>> > Hi,
>> >
>> > I've been trying today to find solutions to what seem to be Datanucleus
>> > issues, but without much success. So rather than solve the problems
>> created
>> > in my refactoring of my application, which has been too hard frankly,
>> I'm
>> > trying to start afresh with some simple test cases, show these work,
>> then
>> > add more complexity till I get where I want to be.
>> >
>> > So, I am starting this approach and I immediately have an issue, but
>> not a
>> > Datanucleus one, I find that the value properties of an abstract parent
>> > class don't appear in the Wicket viewer, whereas they do if the parent
>> > class is concrete. Is this correct and if so what is the reason?
>> >
>> > Thanks.
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message