首页   注册   登录
 ydc886 最近的时间轴更新

ydc886

V2EX 第 358389 号会员,加入于 2018-10-24 20:59:26 +08:00
请教有关 ORM 1+N 查询的问题
  •  1   
    Java  •  ydc886  •  182 天前  •  最后回复来自 TommyLemon
    9
    ydc886 最近回复了
    182 天前
    回复了 ydc886 创建的主题 Java 请教有关 ORM 1+N 查询的问题
    再者,这东西稍微再扩展一下。几张表不在一个同一个 schema,又怎么玩。这些东西日常刷刷写,也想提炼一下,但是没想到如何描述,在搜索引擎就困难找到相关的 blog,就希望作为一个问题,看大家给一些 keyword,让我按图索骥。
    182 天前
    回复了 ydc886 创建的主题 Java 请教有关 ORM 1+N 查询的问题
    @reus 哈哈,这类操作就是很基础的东西,怎么写都行。这类 name 或者 sex 之类没什么业务逻辑的字段,取出来也就塞在 VO 中一个新的域,某个领域对象是业务核心对象,那么其查询时关联一些数据要挺多,这出现的是 join 多了,sql 变长了。就在找个折衷点。标题也不是很恰当。JPA 的 EntityGraph,Spring JPA 的 projections,这些我理解也是对这种场景的抽象。
    182 天前
    回复了 ydc886 创建的主题 Java 请教有关 ORM 1+N 查询的问题
    @shihaoyu 嗯,各类方法的实质上也是 join,或者会话期间懒加载拿数据。这也是流行的 ORM 框架的基本功能。
    public class Key implements Runnable {

    public final String s;
    public volatile static String flag = "A";
    public static volatile int count = 0;
    public ReentrantLock lock;
    public Condition condition;

    public static void main(String[] args) {

    final ReentrantLock lock = new ReentrantLock();
    new Thread(new Key("A", lock), "Thread-A").start();
    new Thread(new Key("B", lock), "Thread-B").start();
    new Thread(new Key("C", lock), "Thread-C").start();
    }

    public Key(final String s, final ReentrantLock lock) {
    this.s = s;
    this.lock = lock;
    this.condition = lock.newCondition();
    }

    @Override
    public void run() {
    while (true) {
    lock.lock();
    try {

    while (!flag.equalsIgnoreCase(s)) {
    try {
    condition.await(10, TimeUnit.MILLISECONDS);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    if (count > 29) {
    System.exit(0);
    }

    System.out.print(s + "-" + (count++) + "; ");

    switch (flag) {
    case "A":
    flag = "B";
    break;
    case "B":
    flag = "C";
    break;
    case "C":
    flag = "A";
    break;
    default:
    throw new RuntimeException("");
    }
    condition.signalAll();
    }
    finally {
    lock.unlock();
    }
    }
    }
    }
    ---

    这种实现可行吗?
    215 天前
    回复了 Trumeet 创建的主题 问与答 有什么好用的 RSS 阅读器吗?高要求预警
    Reeder
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3460 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 14ms · UTC 05:31 · PVG 13:31 · LAX 22:31 · JFK 01:31
    ♥ Do have faith in what you're doing.