26 Nisan 2018 Perşembe

HibernateSearch FullTextEntityManager Arayüzü

getSearchFactory metodu
Şöyle yaparız.
QueryBuilder moreQuery = fullTextEntityManager
  .getSearchFactory()
  .buildQueryBuilder()
  .forEntity(UpdatedEntityClass.class)
  .get();
purge metodu
Şöyle yaparız.
FullTextEntityManager fullTextEntityManager = ...;
fullTextEntityManager.purge(UpdatedEntityClass.class, updatedEntity.id);

25 Nisan 2018 Çarşamba

Validator @ScriptAssert Anotasyonu

Giriş
Şu satırı dahil ederiz
import org.hibernate.validator.constraints.ScriptAssert;
lang Alanı
Şöyle yaparız.
@ScriptAssert(lang="javascript",
         script="_this.confirmPassword.equals(_this.password)",
         message = "personal.password.mismatch.message")
public class PersonalRegistryForm {

  private String password,confirmPassword;
  ...
}

Validator @Email Anotasyonu

Giriş
Şu satırı dahil ederiz.
import org.hibernate.validator.constraints.Email;
Örnek
Şöyle yaparız.
@Email
private String email;

19 Nisan 2018 Perşembe

@NotFound Anotasyonu

action Alanı
Örnek
Şöyle yaparız.
@ManyToOne
@JoinColumn(name = "customer_id")
@NotFound(action = NotFoundAction.IGNORE)
private Customer customer;
Örnek
Şöyle yaparız.
@NotFound(action = NotFoundAction.IGNORE)
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "id_content_manager")
private User contentManager;

18 Nisan 2018 Çarşamba

Validator @NotEmpty Anotasyonu

Giriş
Şu satırı dahil ederiz.
import org.hibernate.validator.constraints.NotEmpty;
message Alanı
Örnek
Şöyle yaparız.
@Column
@NotEmpty(message="password can't be blank")
private String password;

hbm.xml Dosyası

Giriş
Dosya ismi <classname>.hbm.xml şeklindedir.

class tag
name, tablei dynamic-update,dynamic-insert,select-before-update,optimistic-lock attribute alanları olabilir.

id tag

joined-subclass tag
Kalıtımı gösterir

key tag
Primary key alanını gösterir

property tag
Sütunu gösterir

many-to-one tag
Örnek - fetch
Şöyle yaparız.
<hibernate-mapping>
  <class name="test.project.TableA" table="TABLE_A">
    ...
    <many-to-one name="nameA" class="test.project.TableB"
        fetch="select">
        <column name="tableb_primary_id" precision="16" scale="0" not-null="true" />
    </many-to-one>
</hibernate-mapping>
Örnek - cascade
Şöyle yaparız.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 
3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.floreantpos.model">

<class lazy="false" name="com.floreantpos.model.PosTransaction" 
table="TRANSACTIONS">
    <id column="ID" name="id" type="java.lang.Integer">
        <generator class="identity" />
    </id>
    
  <!-- card -->
  <property column="CARD_HOLDER_NAME" length="60" name="cardHolderName" type="string" />
  ...
  
  <!-- uni-directional many-to-one association to Terminal -->
  <many-to-one class="com.floreantpos.model.Terminal" name="terminal" cascade="none">
    <column name="TERMINAL_ID" />
  </many-to-one>
  ...

</class>