本文整理汇总了Java中org.seasar.doma.Entity类的典型用法代码示例。如果您正苦于以下问题:Java Entity类的具体用法?Java Entity怎么用?Java Entity使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Entity类属于org.seasar.doma包,在下文中一共展示了Entity类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: newInstance
import org.seasar.doma.Entity; //导入依赖的package包/类
public static EntityMirror newInstance(TypeElement clazz,
ProcessingEnvironment env) {
assertNotNull(env);
AnnotationMirror annotationMirror = ElementUtil.getAnnotationMirror(
clazz, Entity.class, env);
if (annotationMirror == null) {
return null;
}
EntityMirror result = new EntityMirror(annotationMirror);
for (Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : env
.getElementUtils()
.getElementValuesWithDefaults(annotationMirror).entrySet()) {
String name = entry.getKey().getSimpleName().toString();
AnnotationValue value = entry.getValue();
if ("listener".equals(name)) {
result.listener = value;
} else if ("naming".equals(name)) {
result.naming = value;
} else if ("immutable".equals(name)) {
result.immutable = value;
}
}
return result;
}
示例2: getEntityElementValueList
import org.seasar.doma.Entity; //导入依赖的package包/类
protected List<AnnotationValue> getEntityElementValueList(
TypeElement classElement, String entityElementName) {
List<AnnotationValue> list = new LinkedList<AnnotationValue>();
for (TypeElement t = classElement; t != null
&& t.asType().getKind() != TypeKind.NONE; t = TypeMirrorUtil
.toTypeElement(t.getSuperclass(), env)) {
AnnotationMirror annMirror = ElementUtil.getAnnotationMirror(t,
Entity.class, env);
if (annMirror == null) {
continue;
}
AnnotationValue value = null;
for (Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : annMirror
.getElementValues().entrySet()) {
ExecutableElement element = entry.getKey();
if (entityElementName
.equals(element.getSimpleName().toString())) {
value = entry.getValue();
break;
}
}
list.add(value);
}
Collections.reverse(list);
return list;
}
示例3: doImportName
import org.seasar.doma.Entity; //导入依赖的package包/类
@Override
protected void doImportName(final EntityModel model, final EntityDesc entityDesc) {
classModelSupport.addImportName(model, Entity.class);
classModelSupport.addImportName(model, Serializable.class);
classModelSupport.addImportName(model, Generated.class);
if (model.getCatalogName() != null || model.getSchemaName() != null
|| model.getTableName() != null) {
classModelSupport.addImportName(model, Table.class);
}
if (superclass != null) {
classModelSupport.addImportName(model, superclass);
}
for (AttributeModel attr : model.getAttributeModelList()) {
if (attr.isId()) {
classModelSupport.addImportName(model, Id.class);
if (attr.getGenerationType() != null) {
classModelSupport
.addImportName(model, GeneratedValue.class);
classModelSupport
.addImportName(model, GenerationType.class);
if (attr.getGenerationType() == javax.persistence.GenerationType.SEQUENCE) {
classModelSupport.addImportName(model,
SequenceGenerator.class);
} else if (attr.getGenerationType() == javax.persistence.GenerationType.TABLE) {
classModelSupport.addImportName(model,
TableGenerator.class);
}
}
}
if (attr.isTransient()) {
classModelSupport.addImportName(model, Transient.class);
} else {
classModelSupport.addImportName(model, Column.class);
}
if (attr.isVersion()) {
classModelSupport.addImportName(model, Version.class);
}
classModelSupport.addImportName(model, attr.getAttributeClass());
}
}
示例4: getFieldElements
import org.seasar.doma.Entity; //导入依赖的package包/类
protected List<VariableElement> getFieldElements(
TypeElement classElement) {
List<VariableElement> results = new LinkedList<VariableElement>();
for (TypeElement t = classElement; t != null
&& t.asType().getKind() != TypeKind.NONE; t = TypeMirrorUtil
.toTypeElement(t.getSuperclass(), env)) {
if (t.getAnnotation(Entity.class) == null) {
continue;
}
List<VariableElement> fields = new LinkedList<VariableElement>();
for (VariableElement field : ElementFilter.fieldsIn(t
.getEnclosedElements())) {
fields.add(field);
}
Collections.reverse(fields);
results.addAll(fields);
}
Collections.reverse(results);
List<VariableElement> hiderFields = new LinkedList<VariableElement>(
results);
for (Iterator<VariableElement> it = results.iterator(); it
.hasNext();) {
VariableElement hidden = it.next();
for (VariableElement hider : hiderFields) {
if (env.getElementUtils().hides(hider, hidden)) {
it.remove();
}
}
}
return results;
}
示例5: newInstance
import org.seasar.doma.Entity; //导入依赖的package包/类
public static EntityCtType newInstance(TypeMirror type,
ProcessingEnvironment env) {
assertNotNull(type, env);
TypeElement typeElement = TypeMirrorUtil.toTypeElement(type, env);
if (typeElement == null) {
return null;
}
Entity entity = typeElement.getAnnotation(Entity.class);
if (entity == null) {
return null;
}
return new EntityCtType(type, env, entity.immutable());
}
示例6: getGeneratedClassName
import org.seasar.doma.Entity; //导入依赖的package包/类
protected String getGeneratedClassName(Class<?> originalClass) {
if (originalClass.isAnnotationPresent(Dao.class)) {
return originalClass.getName()
+ Options.Constants.DEFAULT_DAO_SUFFIX;
}
if (originalClass.isAnnotationPresent(Entity.class)
|| originalClass.isAnnotationPresent(Embeddable.class)
|| originalClass.isAnnotationPresent(Domain.class)
|| originalClass.isAnnotationPresent(ExternalDomain.class)) {
return MetaUtil.toFullMetaName(originalClass.getName());
}
throw new AssertionFailedError("annotation not found.");
}
示例7: getSuperclassEntityPropertyInfo
import org.seasar.doma.Entity; //导入依赖的package包/类
/**
* スーパークラスに定義されたエンティティプロパティの情報のセットを返します。
*
* @return スーパークラスに定義されたエンティティプロパティの情報のセット
* @since 1.7.0
*/
protected Set<EntityPropertyInfo> getSuperclassEntityPropertyInfo() {
Set<EntityPropertyInfo> results = new HashSet<EntityPropertyInfo>();
if (superclass == null) {
return results;
}
for (Class<?> clazz = superclass; clazz != Object.class; clazz = clazz
.getSuperclass()) {
Entity entity = clazz.getAnnotation(Entity.class);
if (entity == null) {
continue;
}
org.seasar.doma.jdbc.entity.NamingType namingType = entity.naming();
for (Field field : clazz.getDeclaredFields()) {
int m = field.getModifiers();
if (Modifier.isStatic(m)) {
continue;
}
if (field.isAnnotationPresent(Transient.class)) {
continue;
}
EntityPropertyInfo propertyInfo = new EntityPropertyInfo();
propertyInfo.entityClass = clazz;
propertyInfo.propertyField = field;
Column column = field.getAnnotation(Column.class);
propertyInfo.column = column;
if (column == null || column.name().isEmpty()) {
propertyInfo.columnName = namingType.apply(field.getName())
.toLowerCase();
} else {
propertyInfo.columnName = column.name();
}
propertyInfo.id = field.getAnnotation(Id.class);
propertyInfo.generatedValue = field
.getAnnotation(GeneratedValue.class);
propertyInfo.sequenceGenerator = field
.getAnnotation(SequenceGenerator.class);
propertyInfo.tableGenerator = field
.getAnnotation(TableGenerator.class);
propertyInfo.version = field.getAnnotation(Version.class);
results.add(propertyInfo);
}
}
return results;
}
示例8: handleImportName
import org.seasar.doma.Entity; //导入依赖的package包/类
/**
* インポート名を処理します。
*
* @param entityDesc
* エンティティ記述
* @param tableMeta
* テーブルメタデータ
*/
protected void handleImportName(EntityDesc entityDesc, TableMeta tableMeta) {
classDescSupport.addImportName(entityDesc, ClassConstants.Entity);
if (entityDesc.getCatalogName() != null
|| entityDesc.getSchemaName() != null
|| entityDesc.getTableName() != null) {
classDescSupport.addImportName(entityDesc, ClassConstants.Table);
}
if (superclass != null) {
classDescSupport.addImportName(entityDesc, superclass.getName());
}
if (namingType != NamingType.NONE) {
classDescSupport.addImportName(entityDesc,
namingType.getEnumConstant());
}
if (originalStatesPropertyName != null) {
classDescSupport.addImportName(entityDesc,
ClassConstants.OriginalStates);
}
for (EntityPropertyDesc propertyDesc : entityDesc
.getOwnEntityPropertyDescs()) {
if (propertyDesc.isId()) {
classDescSupport.addImportName(entityDesc, ClassConstants.Id);
if (propertyDesc.getGenerationType() != null) {
classDescSupport.addImportName(entityDesc,
ClassConstants.GeneratedValue);
classDescSupport.addImportName(entityDesc,
ClassConstants.GenerationType);
GenerationType generationType = propertyDesc
.getGenerationType();
if (generationType != null) {
classDescSupport.addImportName(entityDesc,
generationType.getEnumConstant());
if (generationType == GenerationType.SEQUENCE) {
classDescSupport.addImportName(entityDesc,
ClassConstants.SequenceGenerator);
} else if (generationType == GenerationType.TABLE) {
classDescSupport.addImportName(entityDesc,
ClassConstants.TableGenerator);
}
}
}
}
classDescSupport.addImportName(entityDesc, ClassConstants.Column);
if (propertyDesc.isVersion()) {
classDescSupport.addImportName(entityDesc,
ClassConstants.Version);
}
classDescSupport.addImportName(entityDesc,
propertyDesc.getPropertyClassName());
}
}
示例9: getEntitySingleResult
import org.seasar.doma.Entity; //导入依赖的package包/类
/**
* エンティティのインスタンスを1件返します。
* <p>
* 検索結果が存在しない場合は {@code null}を返しますが、
* {@link SelectBuilder#ensureResult(boolean)} に {@code true} を設定することで、
* {@code null}を返す代わりに{@link NoResultException} をスローできます。
*
* @param <RESULT>
* エンティティの型
* @param resultClass
* エンティティクラス
* @return 検索結果
*
* @throws DomaNullPointerException
* 引数が{@code null} の場合
* @throws DomaIllegalArgumentException
* {@code resultClass} がエンティティクラスでない場合
* @throws UnknownColumnException
* 結果セットに含まれるカラムにマッピングされたプロパティが見つからなかった場合
* @throws NoResultException
* {@link SelectBuilder#ensureResult(boolean)} に {@code true}
* を設定しており結果が存在しない場合
* @throws ResultMappingException
* {@link SelectBuilder#ensureResultMapping(boolean)} に
* {@code true} を設定しており、マッピングされないエンティティプロパティが存在する場合
* @throws NonUniqueResultException
* 結果が2件以上返された場合
* @throws JdbcException
* 上記以外でJDBCに関する例外が発生した場合
* @since 2.0.0
*/
public <RESULT> RESULT getEntitySingleResult(Class<RESULT> resultClass) {
if (resultClass == null) {
throw new DomaNullPointerException("resultClass");
}
if (!resultClass.isAnnotationPresent(Entity.class)) {
throw new DomaIllegalArgumentException("resultClass",
Message.DOMA2219.getMessage(resultClass));
}
if (query.getMethodName() == null) {
query.setCallerMethodName("getEntitySingleResult");
}
EntityType<RESULT> entityType = EntityTypeFactory.getEntityType(
resultClass, config.getClassHelper());
query.setEntityType(entityType);
EntitySingleResultHandler<RESULT> handler = new EntitySingleResultHandler<>(
entityType);
return execute(handler);
}
示例10: getOptionalEntitySingleResult
import org.seasar.doma.Entity; //导入依赖的package包/类
/**
* エンティティのインスタンスを {@link Optional} でラップして1件返します。
* <p>
* 検索結果が存在しない場合は {@code Optional}を返しますが、
* {@link SelectBuilder#ensureResult(boolean)} に {@code true} を設定することで、
* {@code null}を返す代わりに{@link NoResultException} をスローできます。
*
* @param <RESULT>
* エンティティの型
* @param resultClass
* エンティティクラス
* @return 検索結果
* @throws DomaNullPointerException
* 引数が{@code null} の場合
* @throws DomaIllegalArgumentException
* {@code resultClass} がエンティティクラスでない場合
* @throws UnknownColumnException
* 結果セットに含まれるカラムにマッピングされたプロパティが見つからなかった場合
* @throws NoResultException
* {@link SelectBuilder#ensureResult(boolean)} に {@code true}
* を設定しており結果が存在しない場合
* @throws ResultMappingException
* {@link SelectBuilder#ensureResultMapping(boolean)} に
* {@code true} を設定しており、マッピングされないエンティティプロパティが存在する場合
* @throws NonUniqueResultException
* 結果が2件以上返された場合
* @throws JdbcException
* 上記以外でJDBCに関する例外が発生した場合
* @since 2.0.0
*/
public <RESULT> Optional<RESULT> getOptionalEntitySingleResult(
Class<RESULT> resultClass) {
if (resultClass == null) {
throw new DomaNullPointerException("resultClass");
}
if (!resultClass.isAnnotationPresent(Entity.class)) {
throw new DomaIllegalArgumentException("resultClass",
Message.DOMA2219.getMessage(resultClass));
}
if (query.getMethodName() == null) {
query.setCallerMethodName("getOptionalEntitySingleResult");
}
EntityType<RESULT> entityType = EntityTypeFactory.getEntityType(
resultClass, config.getClassHelper());
query.setEntityType(entityType);
OptionalEntitySingleResultHandler<RESULT> handler = new OptionalEntitySingleResultHandler<>(
entityType);
return execute(handler);
}
示例11: getEntityResultList
import org.seasar.doma.Entity; //导入依赖的package包/类
/**
* エンティティの複数件を返します。
* <p>
* 検索結果が存在しない場合は空のリストを返します。
*
* @param <ELEMENT>
* エンティティ型
* @param elementClass
* エンティティ型のクラス
* @return 検索結果
*
* @throws DomaNullPointerException
* 引数が {@code null} の場合
* @throws DomaIllegalArgumentException
* {@code elementClass} がエンティティクラスでない場合
* @throws UnknownColumnException
* 結果セットに含まれるカラムにマッピングされたプロパティが見つからなかった場合
* @throws NoResultException
* {@link SelectBuilder#ensureResult(boolean)} に {@code true}
* を設定しており結果が存在しない場合
* @throws ResultMappingException
* {@link SelectBuilder#ensureResultMapping(boolean)} に
* {@code true} を設定しており、マッピングされないエンティティプロパティが存在する場合
* @throws JdbcException
* 上記以外でJDBCに関する例外が発生した場合
* @since 2.0.0
*/
public <ELEMENT> List<ELEMENT> getEntityResultList(
Class<ELEMENT> elementClass) {
if (elementClass == null) {
throw new DomaNullPointerException("elementClass");
}
if (!elementClass.isAnnotationPresent(Entity.class)) {
throw new DomaIllegalArgumentException("elementClass",
Message.DOMA2219.getMessage(elementClass));
}
if (query.getMethodName() == null) {
query.setCallerMethodName("getEntityResultList");
}
EntityType<ELEMENT> entityType = EntityTypeFactory.getEntityType(
elementClass, config.getClassHelper());
query.setEntityType(entityType);
ResultSetHandler<List<ELEMENT>> handler = new EntityResultListHandler<ELEMENT>(
entityType);
return execute(handler);
}
示例12: isEntity
import org.seasar.doma.Entity; //导入依赖的package包/类
protected boolean isEntity(TypeMirror typeMirror) {
TypeElement typeElement = TypeMirrorUtil.toTypeElement(typeMirror, env);
return typeElement != null
&& typeElement.getAnnotation(Entity.class) != null;
}
示例13: EntityProcessor
import org.seasar.doma.Entity; //导入依赖的package包/类
public EntityProcessor() {
super(Entity.class);
}
示例14: streamEntity
import org.seasar.doma.Entity; //导入依赖的package包/类
/**
* エンティティのストリームを返します。
* <p>
* ストリームはアプリケーションでクローズしなければいけません。
*
* @param <TARGET>
* エンティティ型
* @param targetClass
* エンティティ型のクラス
* @return エンティティのストリーム
* @throws DomaNullPointerException
* 引数が{@code null} の場合
* @throws DomaIllegalArgumentException
* 処理対象のクラスがエンティティ型でない場合
* @throws JdbcException
* JDBCに関する例外が発生した場合
* @since 2.7.0
*/
public <TARGET> Stream<TARGET> streamEntity(Class<TARGET> targetClass) {
if (targetClass == null) {
throw new DomaNullPointerException("targetClass");
}
if (!targetClass.isAnnotationPresent(Entity.class)) {
throw new DomaIllegalArgumentException("targetClass",
Message.DOMA2219.getMessage(targetClass));
}
query.setResultStream(true);
return streamEntityInternal(targetClass, Function.identity());
}