在自定义ORM中加载延迟

时间:2017-12-24 18:03:06

标签: java jdbc orm lazy-loading

我目前正在开发一个简单的Java Web应用程序而不使用ORM。

这是一种分层架构。我使用注释来映射'从我的域类到存储库所在的持久层的列。

我的DefaultRepository正在使用反射来获取字段名称并构建查询。我只是使用这个而不是为每个域(例如用户,订单,产品)单独制作一个。

看起来像这样:

存储库:

public abstract class DefaultRepository <TYPE extends DefaultDomain<TYPE>>{

    public int insert(Connection con, TYPE entity){};
    public int update (Connection con, TYPE entity){};
    public int delete (Connection con, TYPE entity){};
    public int findById(Connection con, int id){};
    ...

}

我想实现延迟加载,仅在请求时加载每个用户的订单。这最好发生在findById()的存储库中,我将结果集映射到我的TYPE(域类)。

我将如何实现这种外键关系/一对多/多对一般?

一个想法是使用特定的存储库进行注释,然后在调用订单列表时调用那里的findAll()方法。

例如:

public class Order extends DefaultDomain{
    @ManyToOne(repository=UserRepository.class)
    private User user;

}

这是正确的方法吗?对此有不同/更好的方法吗?

0 个答案:

没有答案