我目前正在开发一个简单的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;
}
这是正确的方法吗?对此有不同/更好的方法吗?