Какой эквивалентный SQL запрос будет сгенерирован для данного запроса гибернации? - PullRequest
0 голосов
/ 24 января 2020

Так что я только начинаю с Hibernate. Мне дали этот проект, к которому я должен добавить некоторые функции, но сначала я должен понять существующую кодовую базу. Я не могу понять, как Критерии работают с отношениями (OneToMany, ManyToOne и т. Д. c) и работают ли они вложенно.

ApplicationInfo. java

@Entity
@Table(name = "APPLICATION")
public class ApplicationInfo implements DomainObject, Serializable
{

@Column(name = "OID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private long myId;

@Embedded
private ApplicationId myApplicationId;

@JoinColumn(name = "ALL_PERMISSION_ID")
@OneToOne(cascade = CascadeType.ALL)
@Cascade(value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private PermissionInfoGroup myAllPermission;

//getters and setters
}

ApplicationId. java

@Embeddable
@AccessType("field")
public class ApplicationId implements Comparable<ApplicationId>, Serializable
{

public static final String GLOBAL = "GLOBAL";

@Column(name = "APPLICATION_NAME", nullable = false)
private String myApplicationName;

@Column(name = "STRATEGY_NAME", nullable = false)
private String myStrategyName;
}

PermissionInfoGroup. java

@Entity
@Table(name = "PERMISSION_GROUP")
public class PermissionInfoGroup implements DomainObject, Serializable
{
@Column(name = "OID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private long myId;

@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name="PERM_GRP_PERMS", joinColumns={@JoinColumn(name="PERMISSION_GROUP_OID")})
@Cascade(value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private final Collection<PermissionInfo> myPermissionList;
}

PermissonInfo. java

@AccessType("field")
@Embeddable
public class PermissionInfo implements Cloneable, Serializable
{
@Column(name = "ACTIONS")
private String myActions;

@Column(name = "PERMISSION_CLS")
private String myPermissionClassName;

@Column(name = "IS_POSITIVE")
private boolean myPositive;

@Transient
private Permission myPermission;

@Transient
private String myAttributes;
}

Я пытаюсь понять природу Спящие запросы. Какие эквивалентные SQL запросы будут сгенерированы для следующих запросов гибернации.

1.

ApplicationInfo appInfo= findUniqueByCriteria(Restrictions.eq(
        "myApplicationId.myApplicationName", applicationName));

2.

 List<ApplicationInfo> appInfoList = findByCriteria(
        Restrictions.in("myApplicationId.myApplicationName", 
            applicationNames));

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...