我想禁用hibernate缓存.
session.setCacheMode(CacheMode.IGNORE)不起作用.
query.setCacheable(false)也行不通.
另外,我可以以某种方式配置对象X,Y不会进行缓存,但是对象Z会进行缓存吗?
谢谢.
我需要从文件路径中获取值.假设我的路径看起来像任何其他路径:
c:\SomeFolder\SomeOtherfolder\A_Specific_Folder\what_i_want\another_folder\bla.txt
Run Code Online (Sandbox Code Playgroud)
我可以在运行时推断'A_Specific_Folder'的名称,我需要得到'what_i_want'.我知道'what_i_want'是一个数字
我当前使用这样的正则表达式:
public String getValueThatIneed(String path) {
String regex = String.format("%s\\\\([0-9]+)\\\\", varContainingNameOfSpecificFolder);
Pattern p = Pattern.compile(regex);
Matcher matcher = compile.matcher(path);
matcher.find(); \\because otherwise i can't use matcher.start()
String myValue = path.substring(matcher.start(1), matcher.end(1));
return myValue;
}
Run Code Online (Sandbox Code Playgroud)
所有这一切只是为了从一个字符串中获取这个tinyValue.现在假设我必须在一个方法中使用它,因为我在10个地方使用它.但是在其中一个地方,我突然需要在stirng上做一些其他操作,这将再次要求我做所有的模式,匹配器的东西,使用相同的正则表达式,只是为了得到matcher.end(1),因为也许这就是全部我需要那边.
有更短的方法吗?
谢谢.
我需要在运行时生成一个与一系列数值匹配的正则表达式.
例如:在运行时我可能会发现,我需要一个正则表达式的所有文件相匹配的"范围" a-261-b.something来a-543-b.something.
我需要生成一个匹配所有这些文件的正则表达式.有任何想法吗?
我需要用Java编写,所以如果有人知道任何特定于Java的方法,那么它也是可以接受的.
谢谢!
以下命令有效:
ssh host ls -1 /home/folder/anotherFolder | wc -l
Run Code Online (Sandbox Code Playgroud)
但这个不起作用:
ssh host num=`ls -1 /home/folder/anotherFolder | wc -l`
Run Code Online (Sandbox Code Playgroud)
也不是这样
ssh host num=`ls -1 "/home/folder/anotherFolder" | wc -l`
Run Code Online (Sandbox Code Playgroud)
也不是这样
ssh host num=`ls -1 "/home/folder/anotherFolder" | wc -l`
Run Code Online (Sandbox Code Playgroud)
所有这些回报:
ls: cannot access /home/folder/anotherFolder: No such file or directory
Run Code Online (Sandbox Code Playgroud)
因为它在客户端计算机中而不是在远程计算机中查找此文件夹.
编辑:澄清:我需要在ssh上下文中有$ num,而不是在它之外.整个ssh命令是检查$ num是否大于X,如果是,则在远程计算机上执行另一个命令,所有这些命令都在一个ssh会话中完成.
编辑2:谢谢,我已经完成了我需要的帮助.原始任务是删除远程计算机中最旧的文件夹(如果它具有多于X个已定义的文件夹).这对我有用:
ssh host "num=\$(ls -1 \$path | wc -l); if [ \$num -gt $num_of_backups ]; then rm -r $backup/\"\$(ls -t1 $backup | tail -n 1)\"; fi"
Run Code Online (Sandbox Code Playgroud)
虽然,我怀疑它不是做我需要的最好方法.任何其他方式将非常感激.
我正在看起来像这样的东西(当然它比这个样本复杂一点):
public class DoOnAll {
private List<IActionPerformer> actionPerformers;
public DoOnAll(List<IActionPerformer> actionPerformers) {
this.actionPerformers = actionPerformers;
}
public void callFromSomeWhere(String path) {
File f = new File(path);
List<File> list = Arrays.asList(f.listFiles());
for (File file : list) {
for (IActionPerformer action : actionPerformers) {
action.perform(file);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
public interface IActionPerformer {
public void perform(File file);
}
Run Code Online (Sandbox Code Playgroud)
public class SomePerformer implements IActionPerformer {
public void perform(File file) {
if (getFileType(file) = ".txt") {
doSomething
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
我应该将条件移动SomePerformer到另一个方法, …
我有一些字符串:
"{0}_something_{1}-{2}-something"
Run Code Online (Sandbox Code Playgroud)
我需要将这些字符串转换为
"%s_something_%s-%s-something"
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
我有一个shell脚本,它执行各种命令,如查杀进程,通过scp复制文件,通过ssh执行远程命令等等...
问题是这个脚本很难维护,很难进行单元测试.此外,我希望将来更改它,以便它可以与xml配置文件一起使用,我认为它不能轻易地用shell脚本完成.所以,我想将它转换为java应用程序,但只是使用ProcessBuilder运行许多命令感觉不对.
另一方面,为今天在shell命令(如java ssh客户端,用于linux进程的java API等等)中轻松解决的每个"问题"搜索java解决方案,也感觉不对.
编辑:我确信我的程序将在Linux环境中运行,因此跨平台在这里不是问题.
有什么建议吗?
我想编写一个脚本来模拟由于某种原因被中断的进程.
所以我尝试运行一些杀死过程的东西:
ssh -f localhost sleep 7;kill pid
call_function_from_another_script_that_runs_the_process
Run Code Online (Sandbox Code Playgroud)
希望ssh命令因为"-f"而在后台运行,并且由于睡眠,kill命令不会很快执行.问题是睡眠不会在这里生效.杀戮正在被立即执行.
如果我在没有-f的情况下运行ssh,那么第二行不会被调用,我的进程也不会运行.
请假设第二行是它所说的 - 从另一个脚本运行一个函数来运行该过程.我不能"将该函数放在脚本中并运行它"或者更改已经编写的其他内容的东西.
任何的想法?
谢谢.
我正在尝试从一个文件中读取,但我唯一能做的就是使用getline().
问题是阅读整行不适合我的工作.
我的输入文件如下所示:
abc 10 20
bbb 10 30
ddd 40 20
Run Code Online (Sandbox Code Playgroud)
当每行中的第一个单词应保存为字符串,并且后面的数字都作为整数编号.每行中"单词"之间的分隔符可以是SPACE或TAB.
那么唯一的解决方案是通过char读取char吗?还是有其他解决方案吗?