Hibernate分页问题
我有一个与Hibernate分页有关的问题,并且在某种程度上已经解释了这个问题
使用Hibernate的ScrollableResults慢慢读取9000万条记录
细节
来自应用程序的HQL查询:
Query q = session.createQuery("from RequestDao r order by r.id desc");
q.setFirstResult(0);
q.setMaxResults(50);
Run Code Online (Sandbox Code Playgroud)
查询返回300万条记录,对于分页,我们只设置了50条记录,分页页面非常慢,因为在每次刷新时我们都会调用查询来获取3百万条记录,而我们只设置50条记录.
我的主要问题是
HQL是否总是进入并命中数据库,或者它是否会进入会话或内存以查找数据,如果它每次都进入数据库并获得结果集那么从性能的角度来看它是非常合适的,什么是最好的解决方案来改进它?
在hibernate中使用HQL有一种方法可以查询数据库并首先获取50条记录,然后根据用户的要求获取其他记录.这个挑战真的让应用程序陷入困境,那么解决这个问题的最佳方法是什么呢?
在日志中生成的HQL查询
from com.delta.dao.RequestDao r order by r.id desc
Run Code Online (Sandbox Code Playgroud)
Hibernate生成的查询
select
getrequest0_.ID as ID24_,
getrequest0_.TIME as START3_24_,
getrequest0_.STAT as STATUS24_,
getrequest0_.SUM as SUMMARY24_,
getrequest0_.OUTNAME as OUTPUT7_24_,
getrequest0_.INPNAME as INPUT8_24_,
getrequest0_.REQUEST_DATE as requestT9_24_,
getrequest0_.PARENT_ID as PARENT10_24_,
getrequest0_.INTER_TYPE as INTERPO60_24_,
getrequest0_.OPEN_INT as OPEN61_24_,
getrequest0_.SOURCE_TYPE as SOURCE62_24_,
getrequest0_.TARGET_TYPE as TARGET20_24_,
getrequest0_.SOURCE as SOURCE14_24_,
getrequest0_.COPY_DATA as …Run Code Online (Sandbox Code Playgroud) 从catch块抛出异常只是为了记录消息是否有意义,以便我们确定导致异常的原因是什么?
码
public void saveLogs(Logs logs) throws RemoteException
{
try
{
LogsOps.saveLogs(logs);
}
catch (RemoteException e)
{
log.info("RemoteException is thrown while trying to save logs ", e);
throw new RemoteException("RemoteException caused while trying to save", e);
}
}
Run Code Online (Sandbox Code Playgroud)
响应下面的一条评论,这个方法会抛出StackOverFlow异常,这里只是显示那些错误的log.info的实际实现.
/** Log the message and the exception with a level of INFO.
* @param message - The message text.
* @param t - An exception to display.
*/
public void info(Object message, Throwable t)
{
String nullSafeMessage = (message != null) …Run Code Online (Sandbox Code Playgroud) 我有文件,其形式key/value对中的字符串像人和计数,例如
"Reggy, 15"
"Jenny, 20"
"Reggy, 4"
"Jenny, 5"
Run Code Online (Sandbox Code Playgroud)
在输出中我应该根据键总结所有计数值,因此对于我们的示例输出将是
"Reggy,19""珍妮,25岁"
这是我的方法:
,分隔符示例实施:
public static void main(final String[] argv) {
final File file = new File("C:\\Users\\rachel\\Desktop\\keyCount.txt");
try {
final Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
if (scanner.hasNext(".*,")) {
String key;
final String value;
key = scanner.next(".*,").trim();
if (!(scanner.hasNext())) {
// pick a better exception to throw
throw new Error("Missing value for key: " + key);
}
key = key.substring(0, key.length() - 1); …Run Code Online (Sandbox Code Playgroud) 下面是两种方法,都创建了concurrentHashMap的实例,我的理解是方法2是线程安全但不是方法1.但是我正在与同事和他进行对话,因为两者都创建了concurrentHashMap的实例,不应该接近1也是线程安全的也?
方法1:
private static final Map<key, value> map = new ConcurrentHashMap<key, value>();
Run Code Online (Sandbox Code Playgroud)
方法2:
private static final ConcurrentHashMap<key, value> concurrentHashMap = new ConcurrentHashMap<key, value>();
Run Code Online (Sandbox Code Playgroud)
希望对此有任何澄清.
我是Web编程的新手,我听说有很多像Java,.Net和PHP这样的Web应用程序开发.
我当然希望如果我能得到这项技术如何在比较和在什么情况下叠起一个宁愿一个技术比其他的一些见解.
感谢提前的所有指导.
我有一堆 XSD,它们又从不同的 XSD 继承架构,我需要从这个 XSD 生成一个用于测试目的的 XML 文件。我正在使用oXygen XML 编辑器来执行此操作,但是当我尝试执行此操作时,它对我不起作用,它说请定义根节点,但它不允许我这样做。因此,如果有人使用过oxygenXML,请提出解决此问题的方法吗?
附加问题:我们如何使用从其他 XSD 继承架构的 XSD 验证传入的 XML 文件?这里的事情是我有一个传入的 XML 文件,因为我有大约 57 个 XSD,其中一些从其他 XSD 继承架构。
给定列名称如何查找数据库中哪些表包含该列?
或者
如何在数据库中找到所有表的特定列?
注意:请从实例中解释答案,因为我从答案中获得了大部分知识.
编辑:我正在使用MySQL数据库.
我正在尝试连接到数据库并获取表的当前状态并将该信息更新为csv文件,使用下面提到的一段代码,能够将数据信息获取到csv文件但是无法从数据库表中获取头信息进入csv文件.
所以我的问题是如何将数据库表头信息转换为CSV文件?
$config['database'] = 'sakila';
$config['host'] = 'localhost';
$config['username'] = 'root';
$config['password'] = '';
$d = new PDO('mysql:dbname='.$config['database'].';host='.$config['host'], $config['username'], $config['password']);
$query = "SELECT * FROM actor";
$stmt = $d->prepare($query);
// Execute the statement
$stmt->execute();
var_dump($stmt->fetch(PDO::FETCH_ASSOC));
$data = fopen('file.csv', 'w');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo "Hi";
// Export every row to a file
fputcsv($data, $row);
}
Run Code Online (Sandbox Code Playgroud)
标题信息含义:
Vehicle Build Model
car 2009 Toyota
jeep 2007 Mahindra
Run Code Online (Sandbox Code Playgroud)
因此,此标题信息将是Vehicle Build Model
任何指导都将受到高度赞赏.
有没有办法删除PHP中的文件的内容,我们有任何php命令,这样做,我知道unlink但我不想删除该文件,而只是想删除该文件的内容.
我有一个文件,我在调用getCurrentDBSnap函数时传递,它从/home/test/incoming文件夹中获取文件并使用currentDB表状态填充到文件中fputcsv并将文件放回/home/test/outgoing.
当前文件保留在传入文件夹中,当我可以调用该函数时getCurrentDBSnap,它将获取该文件并覆盖最新的DB状态.
问:我的问题是,是否有可能而不是覆盖文件,我们可以删除文件的内容,getCurrentDBSnap以便传入文件夹中的文件始终为空?
希望它有意义:)
这个问题与移民项目有关.目前,遗留应用程序位于ColdFusion中,我们希望将其迁移到Spring Framework.
所以我的主要问题是:
我知道有些人可能会认为这是一个非常开放的问题,但这是我的第一个迁移项目,我从未有过任何迁移项目的经验以及在此寻找一些有用的指导.