Yes, you can have three entities:
[RemoteClass alias="com.java.MyVO"]
public class MyVO
{
}
[RemoteClass alias="com.java.MyObj1"]
public class MyObj1
{
}
[RemoteClass alias="com.java.MyObj2"]
public class MyObj2
{
}
In the constructor for MyVO, go through all elements of
MyObj1 and MyObj2 and cast them to their respective types.
If you use the Data Management Service with LCDS, it's event
better.
Object composition can be handled with managed associations.