2016-11-06 2 views
0

У меня есть сущность:пружинных данных родного запрос интересный ошибка с колонкой Лба

@Entity public class KnowledgeBase { 

    private Long id; 
    private String link; 
    private String content; 

    @Id 
    @SequenceGenerator(name = "knowledgebase_id_generator", sequenceName = "knowledgebase_id_sequence", allocationSize = 1) 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "knowledgebase_id_generator") 
    public Long getId() { 
     return id; 
    } 

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

    public String getLink() { 
     return link; 
    } 

    public void setLink(String link) { 
     this.link = link; 
    } 

    public String getContent() { 
     return content; 
    } 

    public void setContent(String content) { 
     this.content = content; 
    } 
} 

И есть хранилище весны данных,

@Repository public interface KnowledgeBaseRepository 
     extends AbstractRepository<KnowledgeBase, Long> { 

    @Query(value = "SELECT c.id as id,c.link as link, c.content as content" 
      + " from knowledgebase c where content=?1", nativeQuery = true) 
    List<KnowledgeBase> findRelevantRecords(String searchString); 
} 

Пожалуйста, обратите внимание, что

where content=?1 

просто образец, где предложение было различным для тестирования.

Проблема в том, что я запускаю этот метод репозитория, все просто отлично, но столбец контента содержит большую сумму текста, я хочу, чтобы она была ленивой. Если я это сделаю, я получаю ошибку, значение которой неверно для Long: ''. Таким образом, моя организация:

@Lob @Basic(fetch = LAZY) String content; 

Если я удалю это, все будет в порядке. Как запретить загрузку столбца содержимого каждый раз и корректный поиск репозитория данных весны?

+0

Я запутался. Какая версия вызывает исключение? Также укажите фактическое исключение. –

ответ

1

попробовать это: Создать конструктор в вашей организации, который принимает только необходимые поля

public class KnowledgeBase{ 

//default constructor 
public KnowledgeBase(){} 

public KnowledgeBase(Long id,String link){ 
this.id=id; 
this.link=link; 
} 

} 

и использовать этот конструктор подписи в запросе в вашем хранилище

@Query(value = "SELECT new #{#entityName} (c.id as id,c.link as link) from #{#entityName} c " 
      + " from knowledgebase c where content=?1", nativeQuery = true) 
    List<KnowledgeBase> findRelevantRecordsWithoutContent(String searchString); 

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

  • Нет связанных вопросов^_^