请问cuba跨库视图按照文档,也实现不了展示

Cuba跨库视图
Order视图中展示不了Customer的相关属性,

以下是Order实体和Customer实体的定义:

@Table(name = "CUBAONE_ORDER")
@Entity(name = "cubaone_Order")
public class Order extends StandardEntity {
    @Temporal(TemporalType.DATE)
    @NotNull
    @Column(name = "DATE_", nullable = false)
    protected Date date;

    @NotNull
    @Column(name = "AMOUNT", nullable = false)
    protected BigDecimal amount;

    @SystemLevel
    @Column(name = "CUSTOMER_ID")
    protected UUID customerId;

    @Transient
    @MetaProperty(related = "customerId")
    protected Customer customer;

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    public UUID getCustomerId() {
        return customerId;
    }

    public void setCustomerId(UUID customerId) {
        this.customerId = customerId;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}
@Table(name = "CUBAONE_CUSTOMER")
@Entity(name = "cubaone_Customer")
public class Customer extends StandardEntity {
    @Column(name = "NAME")
    protected String name;

    @Email(message = "Email is Vaild", regexp = ".*")
    @NotNull
    @Column(name = "EMAIL", nullable = false)
    protected String email;

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getName() {
        return name;
    }

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

视图定义:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<views xmlns="http://schemas.haulmont.com/cuba/view.xsd">
    <view entity="cubaone_Order" name="order-view" extends="_local">
        <property name="customer" view="_minimal">
            <property name="name"/>
        </property>
    </view>
</views>

customer数据:
customer

order数据:
order

这一段是从文档copy的?可否详细描述下你遇到的问题?

重新编辑了帖子,主要问题是Order视图里的Customer对象无法加载显示。
请问如何修改Order才能正确显示呢?

order-view 怎么定义的? log里有什么warning没?
还有就是dataManager怎么定义的?

order-view的定义在帖子里有写。。log没有错误或者warning呢
dataManager默认不是 RdbmsStore吗?

文档里说dataManager定义正确才能生效,但是没说怎么算定义正确。我理解应该是setView使用order-view吧。
screen的xml里指定了使用order-view吗?

还有一点是customer做为外键在列表中展示时,默认展示的是 _minimal 里面的字段。 _minimal 的字段需要通过 @NamePattern 定义。 我刚看了下文档,@NamePattern不定义的话 , _minimal 里没东西。 Customer类里定义上@NamePattern试试

官方demo视频教程里,有写screen的xml采用order-view,我也是选择了order-view

至于_minimal,我换了_base也不行呢!

不是换base的问题。是你缺数据的那块空白cuba默认就用minimal view的数据, 你没法限制它显示其他view的数据。 我推测是因为minimal没定义,所以那里没数据。定义上minimal试试。
@NamePattern("%s|name")

order-view只是定义cuba从数据库选什么数据,但是在列表里展示数据的时候,外键只展示minimal view里的值, 如果你minimal定义的是name,那里就显示name,定义的是email,那里就展示email。

Customer实体定义了@NamePattern("%s|name"),但是还是不行呢

:joy:
那我们找时间复现一下。。。

应该是你配置VIEW的时候,没有勾选CUSTOMER对象的NAME字段吧。

已经勾选了。。而且如果是用@ManyToOne@JoinColumn来关联Customer已经可以成功展示。。但是那样只支持单个数据库,我需要有跨数据库的处理方案。

你另外一个 datastore 叫什么名字?看看你 global 模块下有没有这个datastore的 persistence 文件?
image

CustomerOrder原来我都放在了同一个数据源,然后cuba就感知不到了。。
我重新把CustomerOrder放在不同的数据源,居然就成功了:rofl:

不过还是希望,Cuba能提供hsqldb的多数据源配置,毕竟要再安装个mysql,对新人测试功能增添一道手续!