#java #database #jpa #binary #pdfbox
Вопрос:
Я сохраняю шрифт в базе данных в двоичном виде, каждый раз, когда я вынимаю шрифт, это занимает 1-2 минуты при размере шрифта 3 Мб. Есть ли какой-нибудь способ это исправить. Спасибо.
private PDFont getFont(PDDocument doc, DesignElement designElement)
throws IOException {
OTFParser otfParser = new OTFParser();
TTFParser ttfParser = new TTFParser();
byte[] bytes = designElement.getFontMaster().getFontFile();
InputStream inputStream = ByteSource.wrap(bytes).openStream();
if (designElement.getFontMaster().getExt().equals("otf")) {
OpenTypeFont otf = otfParser.parse(inputStream);
return PDType0Font.load(doc, otf, false);
} else {
TrueTypeFont ttf = ttfParser.parse(inputStream);
return PDType0Font.load(doc, ttf, false);
}
}
Комментарии:
1. Какое отношение к этому имеет база данных? Я не вижу никакого кода базы данных. Я предполагаю, что анализ двоичного файла в объект шрифта-это то, что занимает львиную долю времени здесь.
2. Можете ли вы поделиться кодом, когда вы извлекаете данные из базы данных?
3. Я использую Spring Data JPA, я просто вызываю его с помощью метода findbyid ().
4. designElement.getFont Master(). getFontFile(). Мастер шрифта связан с элементом дизайна. Я получаю элемент дизайна с помощью findById(). Позже getFontFile () — это метод получения двоичного файла.
5. Я опубликовал структуру таблицы ниже