GWT с JPA

Есть четыре вещи для вас, чтобы понять и исследовать.

1 - Создайте сценарий, который можно создать как устанавливаемый триггер «OnFormSubmit». Документация здесь. . Это будет выполняться каждый раз при отправке формы. Это легко сделать, и я добавил скриншот экрана триггера добавления в конце этого ответа.

2 - Узнайте об информации, полученной с помощью сценария «OnFormSubmit». В частности, он вернет диапазон отправки формы, из которого вы хотите получить значение столбца 7 (Владелец).

3 - лист электронной почты содержит отдельный набор данных. Вы можете получить его, сославшись на документацию getSheetByName - . Ссылка

. 4 - Необходимо найти соответствие между значением «Владелец» и «Имя» на листе «Электронные письма». Существует множество способов найти совпадение с владельцем, но циклически проходить через данные «электронные письма», вероятно, проще всего. На каждой новой строке вы проверяете, совпадает ли имя электронной почты с именем «Владелец». Когда вы находите сопоставьте, затем вы получите сопроводительный адрес электронной почты (в ячейке рядом с именем электронной почты). Затем вы можете отправить электронное письмо, как вы проверяли.


Этот код адаптирует ваш существующий код для выполнения указанных шагов

function so5524531901(e) {

  // this script as an Installable "OnFormSubmit" Trigger

  //setup the spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  //get the range from OnFormSubmit
  var range = e.range;
  //Logger.log("DEBUG: the range is "+range.getA1Notation());//DEBUG

  // get the data for the range
  var response = range.getValues();

  // get the owner name from the form submission
  var owner = response[0][7];
  Logger.log("DEBUG: Owner = "+owner);// DEBUG

  // get the emails list
  var emailSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Emails");
  // get ALL the data from this sheet
  var emaildata = emailSheet.getDataRange().getValues();
  // check how many rows of data
  var emailLastRow = emailSheet.getLastRow();
  // start the loop through the emails data
  for (var i=1; i

Create an Installable Trigger for OnFormSubmit

10
задан synergetic 1 April 2009 в 02:00
поделиться

5 ответов

Хорошо, я нашел то, что я пропускал. Я должен был включать jpa-annotations-source.jar в свой путь GWT-компилятора в myapp-compile.cmd сценарии (или в файле типа "build" муравья). Между прочим может кто-либо говорить мне источник этого jpa-annotations-source.jar файла?

1
ответ дан 3 December 2019 в 20:06
поделиться

Можно пользоваться библиотекой Gilead (http://sourceforge.net/projects/gilead/) для бесшовного управления объектами JPA с GWT.

С уважением

9
ответ дан 3 December 2019 в 20:06
поделиться

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

http://code.google.com/p/google-web-toolkit/issues/detail?id=1830&can=1&q=jpa

Конкретно этот файл банки, который решит Вашу проблему:

http://google-web-toolkit.googlecode.com/issues/attachment?aid=1475633892125294312&name=jpa-annotations-source.jar

6
ответ дан 3 December 2019 в 20:06
поделиться

Я также работаю с JPA <--> преобразованием данных GWT и т. Д.

В попытке устранить уровень DTO я также использовал Gilead.

Мое возражение здесь касается перевода javax.persistence. Чтобы избежать этого, я использовал объявления отображения XML JPA (orm.xml)

1
ответ дан 3 December 2019 в 20:06
поделиться

Общая проблема JPA и GWT заключается в том, что сам GWT не поддерживает причудливые классы JPA, поэтому вы просто создаете простые постоянные объекты POJO DTO, которые реализуют java.io.Serializable и имеют простые Аннотации ресурсов JPA. Вам необходимо создать классы сущностей в области действия клиента GWT, либо поместить их в пакет yourproject.client, либо добавить их с помощью

source path = "client"

source path = "folderOfYourEntities"

в Файл YouProject.gwt.xml проекта GWT. Это будет включать объекты сущностей в клиенте GWT, чтобы они также могли использовать их на стороне клиента RPC. DAO должен находиться на стороне сервера и может содержать все, что поддерживает ваш контейнер.

Проблема, с которой вы столкнулись, заключается в том, что при компиляции компилятор GWT сообщает, что он desn ' Я не знаю, что это за импорт для аннотаций JPA в классах сущности DTO. Вот почему вам нужен класс javax.persistence и исходные коды. Ссылка на jpa-annotation-source.jar от Rustmyself работает. Это просто скомпилированные файлы классов и файлы исходного кода javax.persistence плюс Persistence.gwt.xml. Это простой модуль GWT для пакета javax.persistence. Если вы знаете, как создать свой собственный модуль GWT, у вас должны возникнуть проблемы с выполнением всей этой работы. Кстати, официальный источник Java EE можно найти в разделе сборки сайта glassfish dev wiki.glassfish.java.net

. Есть много других решений, которые автоматически превращают ваши причудливые объекты PU в простые объекты с помощью прокси или ленивая загрузка их во время выполнения. Они работают, но не оптимальные решения. Лучшая практика - сделать вещи простыми и надежными с самого начала, имея объекты POJO JPA DTO в контексте клиента GWT и полномасштабный DAO на сервере.

Пример GWTPersistence
Я добавил реальный рабочий пример того, как сделать так, чтобы GWT и JPA работали без проблем. Это проект NetBean с исходными кодами и файлом развертывания. См. GWTPersistence на NingZhang.info

2
ответ дан 3 December 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: