如何编写从父表中删除没有子项的记录的查询?
我有一个表resume和一个表personal_skill,有一个resume_id字段来引用简历表.我需要删除恢复表中没有personal_skill这种resume_id记录的所有记录.
我试着这样做:
DELETE
FROM
resume
WHERE
version = 0
AND NOT EXISTS (SELECT NULL
FROM
personal_skill x
WHERE
x.resume_id = id)
Run Code Online (Sandbox Code Playgroud)
但是这个查询失败,因为我无法使用我在SELECT部分中删除的表.
我有以下任务:
有一个包含长字符串的xml元素.我需要使用xsl将此元素转换为许多html <input>标记.它的工作方式如下:如果字符串长度超过<input>字段可以保持而不滚动我递归调用相同的模板以创建另一个带有remainingig文本的输入字段.
问题是字符串经常在单词的中间分割,这是不好的.
所以我需要找到最后一个space字符的位置,该位置不大于适合<input>标记的子字符串的大小,并且只打印行前的子字符串.
所以我准备了一个最大长度的子字符串,它可以适合字段,但我不知道如何获取其中的最后一个索引,space并将其作为参数传递给函数的下一个调用.
UPD:这是我到目前为止所拥有的
<xsl:template name="multilineInput">
<xsl:param name="input" select="."/>
<xsl:param name="maxFirst" select="."/>
<xsl:param name="firstLineWidth" select="."/>
<input>
<xsl:attribute name="readonly">readonly</xsl:attribute>
<xsl:attribute name="class">input_multiline</xsl:attribute>
<xsl:attribute name="style">width = "<xsl:value-of select="$firstLineWidth"/>"</xsl:attribute>
<xsl:attribute name="type">text</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="substring($input, 1, $maxFirst)"/></xsl:attribute>
</input>
<xsl:if test="$maxFirst < string-length($input)">
<xsl:call-template name="multilineInput">
<xsl:with-param name="input" select="substring($input, $maxFirst+1, string-length($input)-$maxFirst)"/>
<xsl:with-param name="maxFirst" select="110"/>
<xsl:with-param name="firstLineWidth" select="'980'"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
Run Code Online (Sandbox Code Playgroud) 我有一个用Java编写的小应用程序,经过测试并在JRE_1.6上运行.现在我需要针对JRE_1.5运行它.我改变了我必须符合Java 1.5要求的源代码,并且项目编译得很好.
问题是它使用了许多预编译的库opencsv-2.3,这些库是用Java 1.6编译的,因此调用它们的任何类会产生一个java.lang.UnsupportedClassVersionError.
他们中的大多数是com.apachelibs + opencsv-2.3+org.jdom
如何确定哪些库确实需要替换?如何替换需要它的库?
UPD:在我怎能取代部分实际上代表"有什么可以,如果没有旧的图书馆做什么?" 有没有办法降级已编译的库,或者我是否需要在1.5上找到类似的解决方案并重写代码?
我有一个“容器” DIV,它可以缩放以适合窗口100%,并且我想将随机图像加载到DIV中。我有一个适用于html背景的工作脚本,但是我不能让它在DIV上工作。
有任何建议吗?
这是原始脚本:
<script type="text/javascript">
var imgCount = 3;
var dir = 'images/';
var randomCount = Math.round(Math.random() * (imgCount - 1)) + 1;
var images = new Array
images[1] = "bg-01.jpg",
images[2] = "bg-02.jpg",
images[3] = "bg-03.jpg",
document.body.style.backgroundImage = "url(" + dir + images[randomCount] + ")"; </script>
Run Code Online (Sandbox Code Playgroud) 我需要实现以下标记:

问题是我只能使用HTML + CSS和XSLT来生成它.
我想写一个模板,将文本分成XSL行,并将每行打印为<p>带有border-bottomset 的不同段落.是否有更简单的方法通过HTML + CSS实现这一目标?
一个小小的更新:这里的要点是让这个下划线延伸到文本之后并占用所有可用的宽度.因此所有行都具有相同的长度(如字帖中的行),除了第一行可能更短
我有两个表,其中一个(遗留表:A)有两个字段应该作为复合外键,另一个(新表:B)应该使用复合主键作为each row:A has one row:B关系.如何根据GORM描述这些表格?
到目前为止,我已经能够创建一个反映旧表的域类:A
class A {
...
//composite foreign key to link B class
String className;
String eventName;
B b; //instance of B to be related
static mapping = {
table 'a_table';
id column: 'id';
className column: 'class_name';
eventName column: 'event_name';
//b: ???
}
}
Run Code Online (Sandbox Code Playgroud)
哪个有效,但我无法创造new class:B和关系.
我试图将B声明为:
class B implements Serializable{
static auditable = true;
String name;
String className;
String eventName;
static mapping = {
//supposed to make a composite PK
id …Run Code Online (Sandbox Code Playgroud) 有一个具有默认grails.plugins.springsecurity身份验证的应用.当我在Opera [12.14]中输入登录名/密码时,它会让我存储页面的登录名/密码,而Chrome,FF和IE则不会.
这是否必须以某种方式在页面上配置或者是否特定于浏览器?
我有两个对象:User和Resume.简历有一个User user字段.在我的代码中,我首先得到一个user对象并对其进行一些更改.如果Resume.findByUser(user)存在,我会收到简历并在那里做一些更改.
如果我打电话user.save(),resume.save()我得到一个例外,说会话中有同一个对象的另一个引用,所以我开始使用merge().
当我调用user.merge()数据时保存,但是当我调用时,resume.merge()我得到了这个异常:
org.springframework.dao.DuplicateKeyException: a different object with the same identifier value was already associated with the session: [com.wizard.security.User#36]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.wizard.security.User#36]
我不知道该怎么做.看起来问题出现在与之resume.user相同的对象中user.
我很感激你对这个问题的帮助,谢谢.
我需要解析文件路径以从中获取文件名.令我困惑的是,windows \用作分隔符和linux - /不知何故,提供的文件路径甚至可以同时包含两个分隔符.
我当然可以这样做:
int slash = filePath.lastIndexOf("/");
int backslash = filePath.lastIndexOf("\\");
fileName = filePath.substring(slash > backslash ? slash : backslash);
Run Code Online (Sandbox Code Playgroud)
但是,如果我有更多的分隔符,有更好的方法吗?(可能不适用于文件路径)
我有一个maven项目,除了使用普通的repos还使用本地jar.jar以清单的方式定义:
<dependency>
<groupId>com.mirrorworlds</groupId>
<artifactId>lstnef</artifactId>
<version>1.0.0</version>
<optional>false</optional>
<scope>system</scope>
<systemPath>${basedir}/lib/lstnef-1.0.0.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
安装脚本成功运行,但在应用程序启动后,我得到了这个:
Exception in thread "main" java.lang.NoClassDefFoundError:
com/mirrorworlds/lifestreams/mail/tnef/internet/TnefMultipart
at ...processMails(MailProcessor.java:57)
at ...main(MailReader.java:42)
Run Code Online (Sandbox Code Playgroud)
当我查看目标jar时,我也找不到这些类,尽管它们应该在里面 lstnef-1.0.0.jar
我会感谢任何解决这个谜团的建议.
我现在面临的任务如下:我有两个XML文件,它们的结构和内容可能略有不同.两个XML都由相同的XSD验证.我需要创建另一个XML文件,它将成为XSL转换的基础,并允许在XSL转换输出中提供元素的新旧值.
我们的想法是创建一个新的xml,它将包含@diff属性中的旧元素值.所以我尝试使用XSL实现它,但失败了因为我不知道如何处理缺少的元素情况.
现在我决定回退到可以为我生成这个新XML的JavaScript.所以我正在寻找可以根据我的需要使用或修改的XML差异库.我正在考虑使用XSD作为比较任务的基础.(在这种情况下是否有可能摆脱它?)
如果您对如何以不同的方式解决这个问题有任何想法,我也很高兴看到它们.
我是一名java开发人员,并且使用传统的Grails应用程序.我有一个控制器类和许多java类.控制器具有启动/停止java类中描述的任务的方法.我正在使用ScheduledExecutorService它.
问题是每次重新部署应用程序时,我都必须调用http://application/controller/start它来初始化调度程序.我希望controller.start()在启动te应用程序时调用此方法一次.我怎样才能实现这一目标,还是有更好的方法来做到这一点?
我对Java中的功率计算方式以及可用方法的性能感到好奇.所以我写了一个简单的测试来检查Math.pow(),*和^操作.
public static void main(String[] args) {
int SIZE = 100000000;
int[] arr1 = new int[SIZE];
long st1, end1, st2, end2, st3, end3;
st1 = System.currentTimeMillis();
for (int i = 0; i < SIZE; i++) {
arr1[i] = (int) Math.pow(i, 4);
}
end1 = System.currentTimeMillis();
System.out.println("pow: " + (end1 - st1));
arr1 = new int[SIZE];
st2 = System.currentTimeMillis();
for (int i = 0; i < SIZE; i++) {
arr1[i] = i * i * …Run Code Online (Sandbox Code Playgroud)