Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / настройка кеширования eclipselink / 8 сообщений из 8, страница 1 из 1
22.10.2018, 11:44
    #39720806
vlad2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка кеширования eclipselink
Доброго времени суток!
Подскажите как можно корректно настроить кеширование eclipselink? Прежде не сталкивался с кешированием eclipselink...
Я не могу понять, работает он или нет..
может мне необходимо что-то добавить в настройки или же наоборот убрать??

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<properties>
            <property name="javax.persistence.nonJtaDataSource" value="java:/comp/env/jdbc/myD"/>
            <property name="eclipselink.weaving" value="false"/>
            <property name="eclipselink.logging.level" value="INFO"/>
            <property name="eclipselink.logging.level.sql" value="FINE"/>
            <property name="eclipselink.logging.parameters" value="true"/>
            <property name="eclipselink.query-results-cache" value="false"/>

            <property name="eclipselink.cache.shared.MyEntity" value="true"/>
            <property name="eclipselink.cache.type.MyEntity" value="SOFT"/>
            <property name="eclipselink.cache.size.MyEntity" value="64000"/>

            <!--<property name="eclipselink.batch" value="true"/>-->
            <property name="eclipselink.jdbc.batch-writing" value="JDBC"/> <property name="eclipselink.jdbc.batch-writing.size" value="15"/>
        </properties>
...
Рейтинг: 0 / 0
22.10.2018, 12:13
    #39720825
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка кеширования eclipselink
vlad2018,
Была тут инфа что по умолчанию кеш включен.
...
Рейтинг: 0 / 0
22.10.2018, 12:20
    #39720830
vlad2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка кеширования eclipselink
Petro123vlad2018,
Была тут инфа что по умолчанию кеш включен.
Да, но включен по умолчанию кеш первого уровня
...
Рейтинг: 0 / 0
22.10.2018, 12:29
    #39720835
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка кеширования eclipselink
vlad2018,
Это в хибере. Чел тут недавно говорил про второй.
...
Рейтинг: 0 / 0
22.10.2018, 14:32
    #39720896
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка кеширования eclipselink
vlad2018Да, но включен по умолчанию кеш первого уровня
By default EclipseLink enables a shared object cache

vlad2018Я не могу понять, работает он или нет..
- дерните через JPA кэшируемую сущность, измените руками что то связанное с ней через БД, еще раз дерните через JPA (в другом инстансе EntityManager-а) - должны увидеть не измененные данные
...
Рейтинг: 0 / 0
31.10.2018, 13:52
    #39725811
vlad2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка кеширования eclipselink
Kachalovvlad2018Да, но включен по умолчанию кеш первого уровня
By default EclipseLink enables a shared object cache

vlad2018Я не могу понять, работает он или нет..
- дерните через JPA кэшируемую сущность, измените руками что то связанное с ней через БД, еще раз дерните через JPA (в другом инстансе EntityManager-а) - должны увидеть не измененные данные

Ниже привожу пример реализации, но все еще не могу понять работает кэш или нет.. может я что-то не так делаю??
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
@Entity
@Table(name="Cars")
@Cache (
        type=CacheType.SOFT,
        expiry=600000,
        size=64000
)
public class Car implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long Id;
    private String name;
    private int price;

    public Long getId() {
        return Id;
    }

    public void setId(Long Id) {
        this.Id = Id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public class DBClient {
    public static void main(String[] args) {

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("cars_cache");
        EntityManager eman = emf.createEntityManager();

        try {

            String sql = "SELECT c FROM Car c";

            Query query = eman.createQuery(sql);
            List<Car> cars = query.getResultList();

            for (Car car : cars) {
                System.out.printf("%d ", car.getId());
                System.out.printf("%s ", car.getName());
                System.out.println(car.getPrice());
            }

        } finally {

            eman.close();
            emf.close();
        }
    }
}



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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">
    <persistence-unit name="cars_cache" transaction-type ="RESOURCE_LOCAL">

        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>eclipse.Car</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:oradev"/>
            <property name="javax.persistence.jdbc.user" value="system"/>
            <property name="javax.persistence.jdbc.password" value="oracle"/>

            <property name="eclipselink.logging.level" value="INFO"/>
            <property name="eclipselink.logging.level.sql" value="FINE"/>
            <property name="eclipselink.logging.parameters" value="true"/>
            <property name="eclipselink.query-results-cache" value="false"/>

        </properties>
    </persistence-unit>


</persistence>
...
Рейтинг: 0 / 0
01.11.2018, 15:25
    #39726650
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка кеширования eclipselink
vlad2018[Ниже привожу пример реализации, но все еще не могу понять работает кэш или нет.. может я что-то не так делаю??

- этот пример ничего не проверяет (точнее в нем задействован только кэш первого уровня). Вам необходимо несколько инстансов EntityManager-а в приложении и изменение данных не через EntityManager. Ничего этого здесь нет.
...
Рейтинг: 0 / 0
02.11.2018, 17:47
    #39727348
vlad2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка кеширования eclipselink
Kachalovvlad2018[Ниже привожу пример реализации, но все еще не могу понять работает кэш или нет.. может я что-то не так делаю??

- этот пример ничего не проверяет (точнее в нем задействован только кэш первого уровня). Вам необходимо несколько инстансов EntityManager-а в приложении и изменение данных не через EntityManager. Ничего этого здесь нет.

Так как мне правильно его настроить??
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / настройка кеширования eclipselink / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]