小编mat*_*t b的帖子

在LEFT JOIN SQL查询上帮助WHERE

我正在尝试构建一个查询,其中包含一个列,指示用户是否已下载文档.我有一个名为HasDownloaded的表,其中包含以下列:id,documentID,memberID.找出用户是否已下载特定文档很容易; 但我需要生成一个查询,其结果将如下所示:

name              id
----------------------
abc               NULL
bbb               2
ccc               53
ddd               NULL
eee               13
Run Code Online (Sandbox Code Playgroud)

身份证并不重要; 我感兴趣的是文件是否已下载(是否为NULL).

这是我的查询:

SELECT Documents.name, HasDownloaded.id FROM Documents
LEFT JOIN HasDownloaded ON HasDownloaded.documentID = Documents.id
WHERE HasDownloaded.memberID = @memberID
Run Code Online (Sandbox Code Playgroud)

问题是,只有在HasDownloaded表中存在指定用户的条目时,才会返回值.我想保持这种简单,只具有条目HasDownloaded该文件被下载.因此,如果用户1已经下载了abc,bbb和ccc,我仍然希望ddd和eee显示在结果表中,只是id为NULL.但是WHERE子句只给出了存在条目的值.

我不是一个SQL专家 - 有没有一个运营商会给我我想要的东西?我应该采取不同的方法吗?或者这不可能吗?

sql join left-join

19
推荐指数
1
解决办法
3万
查看次数

对于一切,是否有Big-O表示法的主列表?

对于一切,是否有Big-O表示法的主列表?数据结构,算法,对每个,平均情况,最坏情况等执行的操作.

algorithm big-o data-structures

17
推荐指数
2
解决办法
4451
查看次数

将字符串转换为GregorianCalendar

我有一个来自电子邮件标题的字符串,比如Date: Mon, 27 Oct 2008 08:33:29 -0700.我需要的是GregorianCalendar的一个实例,它将代表同一时刻.就这么简单 - 我该怎么做?

而对于最快的 - 这不能正常工作:

SimpleDateFormat format = ... // whatever you want
Date date = format.parse(myString)
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(date)
Run Code Online (Sandbox Code Playgroud)

因为它会将时区标准化为UTC(或您的本地计算机时间,具体取决于Java版本).我需要的是calendar.getTimeZone().getRawOffset()返回-7 * milisInAnHour.

java timezone calendar

17
推荐指数
2
解决办法
5万
查看次数

是否可以以编程方式生成JUnit测试用例和套件?

我必须为一组复杂的业务规则编写一个非常大的测试套件,这些规则目前以几种表格形式捕获(例如,如果参数XYZ是这样的,那么值应该在V1和V2之间).每个规则都有一个名称和自己的语义.

我的最终目标是建立一个测试套件,组织成子测试套件,每个规则都有一个测试用例.

一种选择是将所有这些规则硬编码为测试.这是丑陋的,耗时的,不灵活的.

另一种方法是编写一个Python脚本,该脚本将读取规则文件并使用单元测试生成Java类.如果可以的话,我宁愿避免这种情况.另一种变化是使用Jython.

理想情况下,我希望有一个可以读取文件的测试套件,然后在其中定义子套件和测试.所有这些测试都可以从表文件采取了一定的值进行初始化,在我们的系统中运行的固定入口点,然后调用基于预期值的结果会验证功能.

是否有合理的方法只使用Java来解决这个问题?

更新:我可能在某种程度上简化了我们的规则.其中一些确实是表格式(excel风格),另一些则更模糊.一般的问题仍然存在,因为我可能不是第一个遇到这个问题的人.

java junit unit-testing junit4

17
推荐指数
2
解决办法
9923
查看次数

Eclipse-> File-> New-Project中没有Android项目类型

我使用JDK 1.6,Eclipse Galileo运行CentOS 5.5 x86_64,并安装了0.9.7 ADT; 但是,安装后,Android项目类型不可用.我已检入已安装的软件包列表并已安装.以前有人遇到过这个问题吗?可能是因为我使用了我系统上安装的64位Java VM?

java eclipse android adt

16
推荐指数
2
解决办法
3万
查看次数

在更新分离的对象时,Hibernate可以删除孤立的集合吗?

我知道,删除孤立的子对象是SO一个常见的问题以及人们对Hibernate一个共同的问题,那还算标准答案是,以确保你有一些变化cascade=all,delete-orphan或者cascade=all-delete-orphan对孩子的集合.

我希望能够让Hibernate检测到子集合已从父对象中清空/删除,并在更新父对象时从子数据库中删除子表中的行.例如:

Parent parent = session.get(...);
parent.getChildren().clear();
session.update(parent);
Run Code Online (Sandbox Code Playgroud)

我目前的Parent班级映射如下:

<bag name="children" cascade="all-delete-orphan">
    <key column="parent_id" foreign-key="fk_parent_id"/>
    <one-to-many class="Child"/>
</bag>
Run Code Online (Sandbox Code Playgroud)

在更新附加对象时,这对我来说很好,但是我有一个用例,我们希望能够获取一个分离的对象(由远程客户端通过HTTP/JSON发送到我们的API方法),并将其直接传递给Hibernate会话 - 允许客户端能够以他们喜欢的方式操纵父对象并保持更改.

调用session.update(parent)我的分离对象时,子表中的行是孤立的(FK列设置为null)但不删除.请注意,当我调用时session.update(),这是Hibernate Session第一次看到此对象实例 - 我没有以任何其他方式重新附加或合并对象与Session.我依靠客户端传递其标识符对应于数据库中实际对象的对象.例如,我的API服务方法中的逻辑是这样的:

String jsonString = request.getParameter(...);
Parent parent = deserialize(jsonString);
session.update(parent);
Run Code Online (Sandbox Code Playgroud)

是否有可能Hibernate在传递给分离的父对象时检测孤立的子集合session.update(parent)?或者我是否以某种方式错误地使用了分离的对象?

我希望我可以避免与Hibernate进行任何复杂的交互,以便将更改保存到分离的实例中.在调用之后,我的API方法无需进一步修改分离的对象session.update(parent),此方法仅负责持久保存远程客户端应用程序所做的更改.

java hibernate hibernate-cascade

16
推荐指数
2
解决办法
8534
查看次数

防止Dozer触发Hibernate延迟加载

我正在使用Spring事务,因此当POJO到DTO转换发生时,事务仍处于活动状态.

我想阻止Dozer触发延迟加载,以便隐藏的sql查询永远不会发生:所有提取都必须通过HQL显式完成(以获得对性能的最佳控制).

  1. 这是一个好习惯(我无法在任何地方找到它)?

  2. 怎么安全地做?

我在DTO转换之前试过这个:

PlatformTransactionManager tm = (PlatformTransactionManager) SingletonFactoryProvider.getSingletonFactory().getSingleton("transactionManager");
tm.commit(tm.getTransaction(new DefaultTransactionDefinition()));
Run Code Online (Sandbox Code Playgroud)

我不知道事务发生了什么,但Hibernate会话没有关闭,延迟加载仍然发生.

我试过这个:

SessionFactory sf = (SessionFactory) SingletonFactoryProvider.getSingletonFactory().getSingleton("sessionFactory");
sf.getCurrentSession().clear();
sf.getCurrentSession().close();
Run Code Online (Sandbox Code Playgroud)

它可以防止延迟加载,但是直接在应用程序层(在我的项目中称为"facade")中操作会话是一种很好的做法吗?我应该担心哪些负面影响?(我已经看到涉及POJO - > DTO转换的测试无法通过AbstractTransactionnalDatasource Spring测试类启动,因为这些类尝试触发对不再链接到活动会话的事务的回滚).

我还尝试将传播设置为NOT_SUPPORTED或REQUIRES_NEW,但它重用当前的Hibernate会话,并不会阻止延迟加载.

java spring hibernate dozer spring-transactions

16
推荐指数
3
解决办法
1万
查看次数

如何级联删除作为jpa实体一部分的集合?

@Entity
public class Report extends Model {

    public Date date;
    public double availability;

    @ElementCollection
    @Cascade(value={CascadeType.ALL})
    public Map<FaultCategory, Integer> categories;      
}
Run Code Online (Sandbox Code Playgroud)

在我的一个工作中,我有以下代码:

int n = MonthlyReport.delete("date = ?", date);
Run Code Online (Sandbox Code Playgroud)

这总是无法删除具有以下错误的实体:

DELETE语句与REFERENCE约束"FK966F0D9A66DB1E54"冲突.冲突发生在数据库"TFADB",表"dbo.MonthlyReport_categories",列"MonthlyReport_id"中.

如何指定映射,以便在删除报表时删除categories集合中的元素?

java collections hibernate jpa playframework

16
推荐指数
3
解决办法
2万
查看次数

当无法安排pod时,"insufficient cpu(3)"中的3指的是什么?

当我创建一个无法调度的Pod,因为没有足够CPU的节点来满足Pod的CPU请求时,输出的事件kubectl describe pod/...包含一条消息No nodes are available that match all of the following predicates:: Insufficient cpu (3).

什么是(3)Insufficient cpu (3)意味着什么?

例如,如果我尝试创建一个在我的所有节点只有4个CPU时请求24个CPU的pod:

$ kubectl describe pod/large-cpu-request
Name:           large-cpu-request
Namespace:      default
Node:           /
Labels:         <none>
Annotations:    <none>
Status:         Pending
IP:
Controllers:    <none>
Containers:
  cpuhog:
    ...
    Requests:
      cpu:              24
...
Events:
  FirstSeen     LastSeen        Count   From                    SubObjectPath   Type            Reason                  Message
  ---------     --------        -----   ----                    -------------   --------        ------                  -------
  23m           30s             84      default-scheduler                       Warning         FailedScheduling        No nodes are …
Run Code Online (Sandbox Code Playgroud)

kubernetes google-kubernetes-engine

16
推荐指数
2
解决办法
1万
查看次数

在JSP EL中连接字符串?

我有一个bean列表,每个bean都有一个属性,它本身就是一个电子邮件地址列表.

<c:forEach items="${upcomingSchedule}" var="conf">
    <div class='scheduled' title="${conf.subject}" id="scheduled<c:out value="${conf.id}"/>">
    ...
    </div>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

这会<div>在List中呈现每个bean 一个.

对于子列表,我希望能够做的是连接列表中的每个条目,形成一个String,被显示为一部分<div>title属性.为什么?因为我们使用javascript库(mootools)将其<div>转换为浮动工具提示,并且库将title转换为工具提示的文本.

所以,如果${conf.subject}是"主题",最后我想要title<div>是"主题:blah@blah.com,blah2@blah2.com等",包含所有子列表的电子邮件地址.

我怎么能用JSP EL做到这一点?我试图远离jsp文件中的scriptlet块.

java jsp el taglib

15
推荐指数
2
解决办法
5万
查看次数