package io.ebeaninternal.server.persist.dmlbind;
import io.ebeaninternal.server.core.PersistRequestBean;
Adds support for id creation for concatenated ids on intersection tables.
Specifically if the concatenated id object is null on insert this can be
built from the matching ManyToOne associated beans. For example RoleUserId
embeddedId object could be built from the associated Role and User beans.
This is only attempted if the id is null when it gets to the insert.
/**
* Adds support for id creation for concatenated ids on intersection tables.
* <p>
* Specifically if the concatenated id object is null on insert this can be
* built from the matching ManyToOne associated beans. For example RoleUserId
* embeddedId object could be built from the associated Role and User beans.
* </p>
* <p>
* This is only attempted if the id is null when it gets to the insert.
* </p>
*/
public interface BindableId extends Bindable {
Return true if there is no Id properties at all.
/**
* Return true if there is no Id properties at all.
*/
boolean isEmpty();
Return true if this is a concatenated key.
/**
* Return true if this is a concatenated key.
*/
boolean isConcatenated();
Return the DB Column to use with genGeneratedKeys.
/**
* Return the DB Column to use with genGeneratedKeys.
*/
String getIdentityColumn();
Create the concatenated id for inserts with PFK relationships.
Really only where there are ManyToOne assoc beans that make up the
primary key and the values can be got from those.
/**
* Create the concatenated id for inserts with PFK relationships.
* <p>
* Really only where there are ManyToOne assoc beans that make up the
* primary key and the values can be got from those.
* </p>
*/
boolean deriveConcatenatedId(PersistRequestBean<?> persist);
}