我是Hibernate的新手,我正在编写一个简单的方法来返回与特定过滤器匹配的对象列表.List<Foo>
似乎是一种自然的回归.
无论我做什么,我似乎都无法使编译器高兴,除非我使用丑陋@SuppressWarnings
.
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
public class Foo {
public Session acquireSession() {
// All DB opening, connection etc. removed,
// since the problem is in compilation, not at runtime.
return null;
}
@SuppressWarnings("unchecked") /* <----- */
public List<Foo> activeObjects() {
Session s = acquireSession();
Query q = s.createQuery("from foo where active");
return (List<Foo>) q.list();
}
}
Run Code Online (Sandbox Code Playgroud)
我想摆脱它SuppressWarnings
.但如果我这样做,我会收到警告
Warning: Unchecked cast from List to List<Foo>
Run Code Online (Sandbox Code Playgroud)
(我可以忽略它,但我想首先得不到它),如果我删除泛型以符合.list()
返回类型,我会收到警告
Warning: List is …
Run Code Online (Sandbox Code Playgroud) 我没有删除数据库:
mysql> drop database mydb; ERROR 1010 (HY000): Error dropping database (can't rmdir './mydb', errno: 39)
目录db/mydb存在于mysql树中,但没有表:
# ls -l db/mydb -rw-rw---- mysql mysql HIS_STAT.MYD -rw-rw---- mysql mysql HIS_STAT.MYI
我该怎么办?
当我在Eclipse中突出显示一个文本块,然后按TAB时,它会在每行的头部插入一个选项卡.我希望它插入4个空格.
我需要在具有自定义扩展名的文件上执行此操作:*.shpaml
我安装了PyDev.
我在ubuntu 13.10上运行gradle时遇到问题,我假设它是问题的根源.
我gradle
使用下面的命令安装
sudo apt-get install gradle
Run Code Online (Sandbox Code Playgroud)
我在运行命令时遇到错误gradle -version
:
gradle -version
/usr/lib/jvm/default-java/bin/java: symbol lookup error: /usr/lib/jni/libnative-platform-curses.so: undefined symbol: tgetent
Run Code Online (Sandbox Code Playgroud)
我使用的是java版本:
java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我不知道还能做什么.我尝试了不同版本的java,但无济于事.
在我的一台服务器上(i7 Ivy Core,32 GB RAM,Debian 6 @ 64bit,PHP 5.4.10)我遇到了非常慢的SQLite插入.以下测试程序仅报告2.2次插入/秒(插入30行时为14秒).
unlink("test.db");
$db = new PDO('sqlite:test.db');
$db->exec("CREATE TABLE test (dummy INT)");
$count = 30;
$t = microtime(true);
for ($i=0; $i<$count; $i++) {
$db->exec("INSERT INTO test VALUES ($i)")
or die("SQLite error: ".$db->errorInfo()[2]."\n");
}
$elapsed = microtime(true)-$t;
echo sprintf("%d inserts in %.3f secs (%.1f q/s)\n",
$count, $elapsed, $count/$elapsed);
Run Code Online (Sandbox Code Playgroud)
输出:
$ time php test.php
30 inserts in 13.911 secs (2.2 q/s)
real 0m14.634s
user 0m0.004s
sys 0m0.016s
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过包装加快这一BEGIN
/ END
周围的INSERT语句(这给了我20万Q/S),但即使没有交易,这应该是多 …
需要你帮助优化一个mysql查询.让我们以简单的表格为例.
CREATE TABLE `Modules` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`moduleName` varchar(100) NOT NULL,
`menuName` varchar(255) NOT NULL,
PRIMARY KEY (`ID`),
KEY `moduleName` (`moduleName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)
让我们填写一些数据:
INSERT INTO `Modules` (`moduleName` ,`menuName`)
VALUES
('abc1', 'name1'),
('abc', 'name2'),
('ddf', 'name3'),
('ccc', 'name4'),
('fer', 'name5');
Run Code Online (Sandbox Code Playgroud)
还有一些样本字符串.让它成为abc_def
;
传统上我们试图找到包含搜索字符串的所有行.
相反,我的任务是找到包含moduleName
在输入字符串中的所有行.现在我有以下查询来获得所需的结果:
SELECT `moduleName` ,`menuName`
FROM `Modules`
WHERE 'abc_def' LIKE(CONCAT(`moduleName`,'%'))
Run Code Online (Sandbox Code Playgroud)
这将返回
moduleName | menuName
---------------------------
abc | name2
Run Code Online (Sandbox Code Playgroud)
问题是,此查询未使用索引.
有没有办法强迫它使用一个?
有没有人知道Linux的一个好的,免费的,可视的SVN客户端?
我开始在已经过身份验证的用户和没有经过身份验证的用户之间做出一些区别.为此,我正在使用
Yii::app()->user->id;
Run Code Online (Sandbox Code Playgroud)
但是,在确定的视图中,我输入以下代码:
<?php
if(Yii::app()->user->isGuest) {
print("Welcome back Guest!");
print("Your id is ".Yii::app()->user->id);
} else {
print("Welcome back ".Yii::app()->user->name);
print("Your id is ".Yii::app()->user->id);
}?>
Run Code Online (Sandbox Code Playgroud)
我总是得到"欢迎回来的客人!",无论我是否已登录(成功).如果我已登录,则会显示欢迎消息以及用户的ID!
编辑
@ briiC.lv嘿..对于迟到的回复感到抱歉,我希望你还在关注这个!我没有扩展给定的UserIdentity类.这是强制性的吗?因为我仍然没有得到很好的整体授权方面的问题,我认为这将是最好给它们提供了一流的尝试,然后用我自己的功能扩展.不管怎么样,接下来我后我的UserIdentity类与它的小的调整.也许问题出在这里?
<?php class UserIdentity extends CUserIdentity{
private $_id;
public function authenticate()
{
$user = Users::model()->findAll('username=\''.$this->username.'\' AND password=\''.$this->encryptedPassword.'\'');
if(!isset($user[0]))
{
return false;
}
else
{
$this->setState('id', $user[0]->id);
$this->username = $user[0]->username;
$this->errorCode=self::ERROR_NONE;
return true;
}
}
public function getId()
{
return $this->_id;
}
Run Code Online (Sandbox Code Playgroud)
}
这是我按照你的建议开始记录时得到的输出; 成功登录后立即获得此输出.
[05:23:21.833][trace][vardump] CWebUser#1 (
[allowAutoLogin] => true
[guestName] …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在matpllotlib contourf图上自定义颜色条.虽然我能够使用科学记数法,但我试图改变符号的基础 - 主要是因为我的刻度将在(-100,100)而不是(-10,10)的范围内.
例如,这会产生一个简单的情节......
import numpy as np
import matplotlib.pyplot as plt
z = (np.random.random((10,10)) - 0.5) * 0.2
fig, ax = plt.subplots()
plot = ax.contourf(z)
cbar = fig.colorbar(plot)
cbar.formatter.set_powerlimits((0, 0))
cbar.update_ticks()
plt.show()
Run Code Online (Sandbox Code Playgroud)
像这样:
但是,我希望颜色条上方的标签为1e-2,数字范围为-10到10.
我该怎么做?
我最近花了相当多的时间来追踪一个问题,原因是编译了一个库-D_GLIBCXX_DEBUG
(告诉libstdc ++使用带有额外检查的标准库的调试版本),但没有编译客户端程序.这导致了ABI兼容性问题.
有什么方法可以通过GCC自动检测这样的问题吗?Visual Studio提供了我认为可以用于此目的的detect_mismatch
编译指示,但我不知道任何GCC等价物.GCC通过嵌入符号名称(例如GLIBCXX_3.4.9
)做了一些事情,我可以想象如果相应的符号(例如mylib_debug_stl
)不存在则会因为未定义的符号而导致链接错误的方案,但是我能想到的唯一方法是使用那个符号真是太烂了.
或者,其他人如何避免这个问题?将库的已检查版本构建为不同的名称或类似的名称?