Вы всегда можете JQuery-ize Ваш form.submit, но он может просто назвать то же самое:
$("form").submit(); // probably able to affect multiple forms (good or bad)
// or you can address it by ID
$("#yourFormId").submit();
Вы можете также присоединение функции к отправлять событию, но это - различное понятие.
Не рекомендуется хранить сущности в качестве первичного ключа. При использовании языка запросов существуют некоторые ограничения, и JPA 1.0 не поддерживает. Кроме того, нет необходимости использовать сущности в качестве первичного ключа. Подумайте об этом. Если хотите, обратите особое внимание на следующий вопрос
Класс, который ведет себя как @Entity и @Embeddable
Вы увидите, что используя сущность в качестве первичного ключа не требуется.
Вместо
public class GroupMembershipPK implements Serializable {
private User user;
private Group group;
}
Использование
public class GroupMembershipPK implements Serializable {
private Integer userId;
private Integer groupId;
}
равно реализации важно, потому что JPA сравнивает две сущности, используя ее (JPA проверяет, находится ли сущность в контексте постоянства, используя реализацию равенства). Таким образом, вы можете реализовать в соответствии с советом
public boolean equals(Object o) {
if(o == null)
return false;
if(!(o instanceof GroupMembershipPK))
return false;
GroupMembershipPK other = (GroupMembershipPK) o;
if(!(getUserId().equals(other.getUserId()))
return false;
if(!(getGroupId().equals(other.getGroupId()))
return false;
return true;
}
: рекомендуется использовать доступ к свойствам вместо доступа к полям, потому что в некоторых случаях реализация JPA использует прокси-объект из-за проблем с производительностью. Прокси-объект использует доступ к свойствам, потому что он позволяет реализации JPA обращаться к базе данных, когда это необходимо.
Как сохранить объект, который использует составной первичный ключ?
User user = new user();
Group group = new Group();
entityManager.save(user);
entityManager.save(group);
entityManager.flush();
UserGroup userGroup = new UserGroup();
userGroup.setId(new UserGroup.UserGroupId(user.getId(), group.getId()));
entityManager.save(userGroup);
Вы хотите знать, как реализовать UserGroup?
public class UserGroup {
private UserGroupId id;
// You can create UserGroupId outside UserGroup class
// Feel free to choice your best approach
@Embeddable
public static class UserGroupId implements Serializable {
private Integer userId;
private Integer groupId;
// required no-arg constructor
public UserGroupId() {}
public UserGroupId(Integer userId, Integer groupId) {
this.userId = userId;
this.roupId = groupId;
}
// getter's and setter's
// equals and hashcode as shown above
}
@EmbeddedId
public UserGroupId getId() {
return this.id;
}
public setId(UserGroupId id) {
this.id = id;
}
}
Еще один подход к использованию составного первичного ключа - это IdClass. См. IdClass
с уважением,