我有两个表Item和Nikasa-其定义是这样的:
Item { id, name, spec}和Nikasa {id, date, item_id}.这里item_id代表Item.id.
我做了一个简单的原生SQL连接,只选择Item.id和Nikasa.id:
Session s = getSession();
SQLQuery sq = s.createSQLQuery("SELECT it.id, nik.id FROM item it LEFT JOIN nikasa nik ON (it.id = nik.item_id)");
List result = sq.list();
Run Code Online (Sandbox Code Playgroud)
但我NonUniqueDiscoveredSqlAliasException : Encountered a duplicated sql alias [ID] during auto-discovery of a native-sql query在线上得到例外List result=sq.list();:
堆栈跟踪 :
org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [ID] during auto-discovery …Run Code Online (Sandbox Code Playgroud) 我试图在随机发生器中获得50或50的机会获得1或2.
例如:
Random random = new Random();
int num = random.nextInt(2)+1;
Run Code Online (Sandbox Code Playgroud)
此代码将输出1或2.
假设我在循环中运行它:
for ( int i = 0; i < 100; i++ ) {
int num = random.nextInt(2)+1 ;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如何使发生器为1和2制作相同的数字?
所以我希望这个循环产生数字1的50倍和数字2的50倍.
我正在使用Poi.jar从excel表中获取输入,并想知道如何检查单元格是否为空.
现在我使用下面的代码.
cell = myRow.getCell(3);
if (cell != null) {
cell.setCellType(Cell.CELL_TYPE_STRING);
//System.out.print(cell.getStringCellValue() + "\t\t");
if (cell.getStringCellValue() != "")
depend[p] = Integer.parseInt(cell.getStringCellValue());
}
}
Run Code Online (Sandbox Code Playgroud) 如何限制在Xamarin.Forms中的Entry控件中输入的长度和字符.我需要创建自定义控件吗?有没有办法从Entry(或其他控件)派生,所以我可以应用必要的每平台输入限制.
一个示例是一个数字字段,最多只能包含3个字符,仅限数字.
将Entry控件的Keyboard属性设置为Keyboard.Numeric仅设置iOS的键盘.它不限制实际的文本输入 - 即我仍然可以输入非数字字符.我也没有看到限制进入长度的方法.
由于这些问题#1说明:问题1和问题2我的理解是" 字符串常量 "被拘留时:
String s = "abc";
Run Code Online (Sandbox Code Playgroud)
在以下情况下,JVM将创建一个新的String对象,而不是使用String Pool中的现有对象:
String s = new String("abc");
Run Code Online (Sandbox Code Playgroud)
但是,在阅读以下两个类似的陈述后,我有一个疑问.
当编译器遇到String文本时,它会检查池以查看是否已存在相同的String.如果找到匹配项,则对新文本的引用将定向到现有String,并且不会创建新的String文本对象.
在这种情况下,由于关键字"new",我们实际上最终会遇到略微不同的行为.在这种情况下,对字符串文字的引用仍然放在常量表(String Literal Pool)中,但是,当你来到关键字"new"时,JVM必须在运行时创建一个新的String对象,而不是使用常量表中的那个.
因此,当我们使用"new"并基于上面的定义创建对象时,我们还在非池内存和池内存中放置引用.当我们这样做时,JVM是否也应该返回相同的引用?:
String one = new String("test");
String two = "test";
System.out.println(one.equals(two)); // true
System.out.println(one == two); // false
Run Code Online (Sandbox Code Playgroud)
因为在声明字符串文字时String three = "test";它会存在于池中吗?因此应该返回相同的参考和打印真实?或者之前的陈述是否意味着它们将被放入池内存中,但只是在使用new运算符时跳过?
我正在使用visual studio构建一个移动Web应用程序,我想知道如何将所有CSS文件缩小为一个文件,以及将所有JavaScript缩小到一个缩小文件.
我有几个小时的问题,我尝试了我在教程中找到的所有解决方案.这很简单:我无法访问资源文件.我尝试打开我已经把一个文件src/main/resources和src/test/resources.
我有一个简单的Java项目,我使用带有Eclipse作为IDE的Maven和m2e插件.我想使用Maven的资源过滤,具有不同的配置文件,并且我的POM.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<debug>false</debug>
<optimize>true</optimize>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<filters>
<filter>src/main/filters/${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>LOCAL</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>local</env>
</properties>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
我在src/java/test中做了一个简单的测试:
@Test
public void testOpenResourceFile() {
File testf=new File("/test.txt");
assertTrue(testf.exists());
}
Run Code Online (Sandbox Code Playgroud)
所以,在Eclipse中,我运行(在我的项目文件夹中,在包视图中):
使用env:LOCAL …
在以下场景中:
我有一个项目目前有一万个视频文件的目录,数量将急剧增加.
但是很多都是重复的.对于每个视频文件,我都有关联的语义和描述性信息,我希望将这些信息合并为重复数据,以便为每个视频文件提供更好的结果.
现在我需要某种程序来索引数据库中的元数据,每当新视频进入目录时,计算相同的数据并在数据库中进行匹配.
问题是视频不是完全重复的.他们可以有不同的质量,amby裁剪,水印或续集/前传.或者在开始和/或结束时被切断.
不幸的是,比较越好cpu和内存密集度越高,所以我计划实现几层比较,从非常优雅但快速的比较开始(maby视频长度,容差为10%),最后的比较结束,决定是否它真的是重复(这将是社区投票).
因此,当我有一个社区来验证结果时,只需提供低错失率的"良好猜测"就足够了.
所以现在我的问题是你们可以想到什么层次,或者你有更好的方法?
我不关心创建元数据的努力,我有足够的奴隶来做到这一点.只是比较应该很快.所以,如果它有助于我可以将视频转换100次...
以下是我目前的想法:
视频长度(秒)
第一帧和最后一帧图片分析
如果此像素的颜色大于/小于0或1表示的平均值,我会将图片重新取样到缩略图大小并获得平均rgb值,然后逐个像素地序列化.所以我得到一个二进制字符串,我可以存储到mysql并做一个布尔位和(由内部的mysql支持)并计算剩余的非重要位(内部支持,然后是bianry字符串的Levenshtein距离)
我会将视频转码为具有完全相同设置的vbr videofile.然后我会看某些时间点的比特率(完成视频的百分比或绝对秒数......然后我们只分析视频的一部分).和图片一样的东西.如果比特率大于平均值1,则其为0.我们制作二进制字符串并将其存储在db中并稍后计算Levenshtein距离
音频分析(随着时间的推移比特率和分贝变化,就像视频的比特率一样)
关键帧分析
图像comarision就像第一帧和最后一帧,但在关键帧位置?我们将使用与比特率计算相同的源文件,因为关键帧很大程度上取决于编解码器和设置.
也许让我们在图像中取一个或多个区域/像素,看看它们是如何随着时间的推移而发展的.同样,变化大于/低于平均水平.我认为黑/白就足够了.
还是我走错了路?我想我不能成为第一个遇到这个问题的人,但我没有找到解决方案.
language-agnostic video comparison fingerprint audio-fingerprinting
我有一个带有一些背景图片的页面.
在body标签中,我有一个只有一个内部路径元素的svg元素.
如何将path-filter添加到路径元素,以便它可以模糊非矩形形状的背景?

$(function() {
var pattern = "M0,{offsetTop} C{ax1},{power},{ax2},{power},{width},{offsetTop} L{width},{height},0,{height}Z";
var $svg = $('svg#footer');
var $path = $svg.find('path');
var settings = {
width: 1200,
height: 200,
offsetTop: 200,
power: 200
}
settings.ax1 = settings.width / 3 * 1;
settings.ax2 = settings.width / 3 * 2;
function render() {
var newPath = pattern;
for (var i in settings) {
newPath = newPath.split('{' + i + '}').join(settings[i]);
}
$path.attr('d', newPath);
}
TweenMax.set($svg, {
force3D: true
})
var opened = false;
function …Run Code Online (Sandbox Code Playgroud)正如我在启动Java应用程序之前所知道的那样,它为它分配了一些RAM,并且这个内存可以在启动之前由用户控制.但是当我启动应用程序时,每次都有不同的执行时间,还有另一个问题.
这是一个非常简单的for循环示例:
package timespent;
public class Main {
public static void main(String[] args) {
long startTime = System.nanoTime();
int j = 0;
for (int i = 0; i < 1.E6; i++) {
j = i + 1;
}
long endTime = System.nanoTime();
long duration = (endTime - startTime);
System.out.println("duration = " + duration);
}
}
Run Code Online (Sandbox Code Playgroud)
它打印出不同的结果:
duration = 5720542
duration = 7331307
duration = 7737946
duration = 6899173
Run Code Online (Sandbox Code Playgroud)
假设我希望它能够精确地执行10,000,000纳秒或10毫秒.
我希望java应用程序执行精确的时间执行.
当我启动一个应用程序时,我想在加载所有组件之前显示应用程序启动窗口上剩下的确切执行时间.
我想这是一种CPU操作,我想知道它是否可能.
Q1:在Java中有可能吗?
Q2:如果在Java中不可能,那么有没有办法通过访问OS本机方法来实现这一点.例如,通过优先考虑Java应用程序或其他东西?
问题3:如何将应用程序的状态保存到文件并将其加载到内存中?