2013-06-20 2 views
0

У меня есть @OneToMAny realationship внутри моей сущности.JPA присоединяется к столбцу только для вставки/удаления, отключить select

Можно ли отключить jpa от генератора select для объединенного столбца? beacose У меня много записей в моей основной таблице, и при их выборе каждая запись выполняет выбор для объединенного столбца. Я бы хотел отключить этот выбор, это возможно?

UPDATE: Я попытался вставить выборки LAZY, но он по-прежнему создает для выбора Table02f и Table03f ...

Это мой код:

public class Table01f implements Serializable { 

    @OneToMany(fetch=FetchType.LAZY , cascade = CascadeType.ALL, mappedBy = "table01f") 
    private List<Table02f> table02fList; 

    //getter & setter... 
} 

public class Table02f implements Serializable { 

    @JoinColumn(name = "F2PRP", referencedColumnName = "F1PRP", insertable = false, updatable = false) 
    @ManyToOne(optional = false) 
    @JsonIgnore 
    private Table01f table01f; 

    @OneToMany(fetch=FetchType.LAZY , cascade = CascadeType.ALL, mappedBy = "table02f") 
    private List<Table03f> table03fList; 

    //getter & setter... 
} 

public class Table03f implements Serializable { 

    @JoinColumns({ 
     @JoinColumn(name = "F3PRP", referencedColumnName = "F2PRP", insertable = false, updatable = false), 
     @JoinColumn(name = "F3BRN", referencedColumnName = "F2BRN", insertable = false, updatable = false)}) 
    @ManyToOne(optional = false) 
    @JsonIgnore 
    private Table02f table02f; 

//getter & setter... 
} 

Thank в заранее.

ответ

2

Просто добавьте тип выборки LAZY к вашим @OneToMany отношениям:

@OneToMany(fetch=FetchType.LAZY) 

При загрузке списка ваших основных субъектов, JPA не заполнить свой список для этих отношений, избегая поколение SELECT.

Просто ознакомьтесь с этой функциональностью в документации JPA, чтобы вы могли понять, как ее использовать.

+0

Я обновил мой вопрос, он все еще не работает .. – user2046810

1

Если вам не нужны данные, сделайте это ЛАЗИ (вообще всегда делайте все ЛАЗИ).

Если вам нужны данные, вы можете использовать выборку партии или присоединиться к извлечению.

http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.html

+0

Я обновил мой вопрос, он все еще не работает .. – user2046810

+0

Вы также можете рассмотреть возможность использования выборки-группы или только выбрать поле вы хотите в JPQL. – James

Смежные вопросы