Вот версия, которую я скопировал из https://gist.github.com/1847816 , но переписан, поэтому ее легче читать и отлаживать. Цель копирования данных привязки в другую переменную с именем «результат» заключается в том, что данные привязки довольно длинные, поэтому копирование ограниченного числа значений в результат поможет упростить результат.
/**
* See: https://gist.github.com/1847816
* Parse a URI, returning an object similar to Location
* Usage: var uri = parseUri("hello?search#hash")
*/
function parseUri(url) {
var result = {};
var anchor = document.createElement('a');
anchor.href = url;
var keys = 'protocol hostname host pathname port search hash href'.split(' ');
for (var keyIndex in keys) {
var currentKey = keys[keyIndex];
result[currentKey] = anchor[currentKey];
}
result.toString = function() { return anchor.href; };
result.requestUri = result.pathname + result.search;
return result;
}
Вы можете использовать или JPA-кэширование (я думаю, @Cacheable
связано с JPA) или Hibernate, поэтому вы должны рассмотреть 2 сценария.
Сценарий JPA
В случае JPA: в соответствии со спецификацией JPA, чтобы включить кэширование JPA (является ли @Cacheable
аннотация JPA?), Необходимо указать <shared-cache-mode>
в вашем persistence.xml
Например:
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
<persistence-unit name="SimpleTest" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
<properties>
</properties>
</persistence-unit>
</persistence>
Сценарий гибернации
В случае использования кэширования гибернации вы должны использовать [116 ] аннотация, предоставленная Hibernate ( Hibernate @Cache )
Более того, если вы используете hibernate-объект Query, вы должны указать, что запрос должен кэшироваться, выполняя что-то вроде этого:
[111 ]Вы можете найти больше здесь https://www.baeldung.com/hibernate-second-level-cache
Я надеюсь, что это полезно