下面列出了怎么用org.hibernate.annotations.Type的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void setParameterValues(Properties parameters) {
DynamicParameterizedType.ParameterType parameterType = (ParameterType) parameters.get(DynamicParameterizedType.PARAMETER_TYPE);
Annotation[] annotations = parameterType.getAnnotationsMethod();
if (annotations != null) {
for (int i = 0; i < annotations.length; i++) {
Annotation annotation = annotations[i];
if (Type.class.isAssignableFrom(annotation.annotationType())) {
Type type = (Type) annotation;
name = type.type();
break;
}
}
}
if (name == null) {
name = String.format(DEFAULT_TYPE_NAME, parameters.getProperty(SQL_ARRAY_TYPE));
}
((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters);
}
@Override
public void setParameterValues(Properties parameters) {
DynamicParameterizedType.ParameterType parameterType = (ParameterType) parameters.get(DynamicParameterizedType.PARAMETER_TYPE);
Annotation[] annotations = parameterType.getAnnotationsMethod();
if (annotations != null) {
for (int i = 0; i < annotations.length; i++) {
Annotation annotation = annotations[i];
if (Type.class.isAssignableFrom(annotation.annotationType())) {
Type type = (Type) annotation;
name = type.type();
break;
}
}
}
if (name == null) {
name = String.format(DEFAULT_TYPE_NAME, parameters.getProperty(SQL_ARRAY_TYPE));
}
((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters);
}
@Override
public void setParameterValues(Properties parameters) {
DynamicParameterizedType.ParameterType parameterType = (ParameterType) parameters.get(DynamicParameterizedType.PARAMETER_TYPE);
Annotation[] annotations = parameterType.getAnnotationsMethod();
if (annotations != null) {
for (int i = 0; i < annotations.length; i++) {
Annotation annotation = annotations[i];
if (Type.class.isAssignableFrom(annotation.annotationType())) {
Type type = (Type) annotation;
name = type.type();
break;
}
}
}
if (name == null) {
name = String.format(DEFAULT_TYPE_NAME, parameters.getProperty(SQL_ARRAY_TYPE));
}
((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters);
}
@Override
public void setParameterValues(Properties parameters) {
DynamicParameterizedType.ParameterType parameterType = (ParameterType) parameters.get(DynamicParameterizedType.PARAMETER_TYPE);
Annotation[] annotations = parameterType.getAnnotationsMethod();
if (annotations != null) {
for (int i = 0; i < annotations.length; i++) {
Annotation annotation = annotations[i];
if (Type.class.isAssignableFrom(annotation.annotationType())) {
Type type = (Type) annotation;
name = type.type();
break;
}
}
}
if (name == null) {
name = String.format(DEFAULT_TYPE_NAME, parameters.getProperty(SQL_ARRAY_TYPE));
}
((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters);
}
private static boolean discoverTypeWithoutReflection(XProperty p) {
if ( p.isAnnotationPresent( OneToOne.class ) && !p.getAnnotation( OneToOne.class )
.targetEntity()
.equals( void.class ) ) {
return true;
}
else if ( p.isAnnotationPresent( OneToMany.class ) && !p.getAnnotation( OneToMany.class )
.targetEntity()
.equals( void.class ) ) {
return true;
}
else if ( p.isAnnotationPresent( ManyToOne.class ) && !p.getAnnotation( ManyToOne.class )
.targetEntity()
.equals( void.class ) ) {
return true;
}
else if ( p.isAnnotationPresent( ManyToMany.class ) && !p.getAnnotation( ManyToMany.class )
.targetEntity()
.equals( void.class ) ) {
return true;
}
else if ( p.isAnnotationPresent( org.hibernate.annotations.Any.class ) ) {
return true;
}
else if ( p.isAnnotationPresent( ManyToAny.class ) ) {
if ( !p.isCollection() && !p.isArray() ) {
throw new AnnotationException( "@ManyToAny used on a non collection non array property: " + p.getName() );
}
return true;
}
else if ( p.isAnnotationPresent( Type.class ) ) {
return true;
}
else if ( p.isAnnotationPresent( Target.class ) ) {
return true;
}
return false;
}
public void setExplicitType(Type typeAnn) {
if ( typeAnn != null ) {
explicitType = typeAnn.type();
typeParameters.clear();
for ( Parameter param : typeAnn.parameters() ) {
typeParameters.setProperty( param.name(), param.value() );
}
}
}
@Column(name = "EXECUTER_INFORMATION_DATA", length = Integer.MAX_VALUE)
@Cascade(CascadeType.ALL)
@Type(type = "org.hibernate.type.SerializableToBlobType", parameters = @org.hibernate.annotations.Parameter(name = SerializableToBlobType.CLASS_NAME, value = "java.lang.Object"))
@OnDelete(action = OnDeleteAction.CASCADE)
public ExecuterInformationData getExecuterInformationData() {
return executerInformationData;
}
/**
* @return the autorefresh
*/
@Column(name = "autorefresh")
@Type(type = "yes_no")
public boolean isAutorefresh() {
return autorefresh;
}
/**
* @return the signed
*/
@Type(type = "yes_no")
public boolean isSigned() {
return signed;
}
/**
* @return Returns the mandatory.
*/
@Type(type = "yes_no")
@Column(name = "mandatory")
public boolean isMandatory() {
return mandatory;
}
/**
* @return Returns the read.
*/
@Type(type = "yes_no")
@Column(name = "read")
public boolean getRead() {
return read;
}
/**
* @return true if the image has been built outside SUSE Manager
*/
@Column(name = "external_image")
@Type(type = "yes_no")
public boolean isExternalImage() {
return externalImage;
}
/**
* @return true if the image has been built outside SUSE Manager
*/
@Column(name = "external_image")
@Type(type = "yes_no")
public boolean isExternalImage() {
return externalImage;
}
@Override
protected boolean bindStarToManySecondPass(
Map persistentClasses,
XClass collType,
Ejb3JoinColumn[] fkJoinColumns,
Ejb3JoinColumn[] keyColumns,
Ejb3JoinColumn[] inverseColumns,
Ejb3Column[] elementColumns,
boolean isEmbedded,
XProperty property,
boolean unique,
TableBinder associationTableBinder,
boolean ignoreNotFound,
MetadataBuildingContext buildingContext) {
boolean result = super.bindStarToManySecondPass(
persistentClasses, collType, fkJoinColumns, keyColumns, inverseColumns, elementColumns, isEmbedded,
property, unique, associationTableBinder, ignoreNotFound, getBuildingContext()
);
CollectionId collectionIdAnn = property.getAnnotation( CollectionId.class );
if ( collectionIdAnn != null ) {
SimpleValueBinder simpleValue = new SimpleValueBinder();
PropertyData propertyData = new WrappedInferredData(
new PropertyInferredData(
null,
property,
null, //default access should not be useful
buildingContext.getBootstrapContext().getReflectionManager()
),
"id"
);
Ejb3Column[] idColumns = Ejb3Column.buildColumnFromAnnotation(
collectionIdAnn.columns(),
null,
Nullability.FORCED_NOT_NULL,
propertyHolder,
propertyData,
Collections.EMPTY_MAP,
buildingContext
);
//we need to make sure all id columns must be not-null.
for(Ejb3Column idColumn:idColumns){
idColumn.setNullable(false);
}
Table table = collection.getCollectionTable();
simpleValue.setTable( table );
simpleValue.setColumns( idColumns );
Type typeAnn = collectionIdAnn.type();
if ( typeAnn != null && !BinderHelper.isEmptyAnnotationValue( typeAnn.type() ) ) {
simpleValue.setExplicitType( typeAnn );
}
else {
throw new AnnotationException( "@CollectionId is missing type: "
+ StringHelper.qualify( propertyHolder.getPath(), propertyName ) );
}
simpleValue.setBuildingContext( getBuildingContext() );
SimpleValue id = simpleValue.make();
( (IdentifierCollection) collection ).setIdentifier( id );
String generator = collectionIdAnn.generator();
String generatorType;
if ( "identity".equals( generator ) || "assigned".equals( generator )
|| "sequence".equals( generator ) || "native".equals( generator ) ) {
generatorType = generator;
generator = "";
}
else {
generatorType = null;
}
if ( buildingContext.getBootstrapContext().getJpaCompliance().isGlobalGeneratorScopeEnabled() ) {
SecondPass secondPass = new IdGeneratorResolverSecondPass(
id,
property,
generatorType,
generator,
getBuildingContext()
);
buildingContext.getMetadataCollector().addSecondPass( secondPass );
}
else {
BinderHelper.makeIdGenerator(
id,
property,
generatorType,
generator,
getBuildingContext(),
localGenerators
);
}
}
return result;
}
@Column(nullable=false)
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
public DateTime getUpdatedDate() {
return updatedDate;
}
public Address.Type getType() {
return type;
}
public void setType(Address.Type type) {
this.type = type;
}
@Override
public MemberRef.Type getType() {
return MemberRef.Type.USER;
}
@Column(name = "JAVA_HOME", length = Integer.MAX_VALUE)
@Lob
@Type(type = "org.hibernate.type.MaterializedClobType")
public String getJavaHome() {
return javaHome;
}
@Column(name = "JVM_ARGUMENTS")
@Type(type = "org.hibernate.type.SerializableToBlobType", parameters = @org.hibernate.annotations.Parameter(name = SerializableToBlobType.CLASS_NAME, value = "java.lang.Object"))
public List<String> getJvmArguments() {
return jvmArguments;
}
@Column(name = "CLASSPATH")
@Type(type = "org.hibernate.type.SerializableToBlobType", parameters = @org.hibernate.annotations.Parameter(name = SerializableToBlobType.CLASS_NAME, value = "java.lang.Object"))
public List<String> getAdditionalClasspath() {
return additionalClasspath;
}
@Column(name = "WORKING_DIR", length = Integer.MAX_VALUE)
@Lob
@Type(type = "org.hibernate.type.MaterializedClobType")
public String getWorkingDir() {
return workingDir;
}
@Column(name = "GENERIC_INFO", updatable = false)
@Type(type = "org.ow2.proactive.scheduler.core.db.types.NonEmptyMapToBlobType", parameters = @Parameter(name = SerializableToBlobType.CLASS_NAME, value = "java.lang.Object"))
public Map<String, String> getGenericInformation() {
return genericInformation;
}
@Lob
@Column(name = "DESCRIPTION", length = Integer.MAX_VALUE, updatable = false)
@Type(type = "org.hibernate.type.MaterializedClobType")
public String getDescription() {
return description;
}
@Column(name = "GENERIC_INFO", length = Integer.MAX_VALUE)
@Type(type = "org.hibernate.type.SerializableToBlobType", parameters = @Parameter(name = SerializableToBlobType.CLASS_NAME, value = "java.lang.Object"))
public Map<String, String> getGenericInformation() {
return genericInformation;
}
@Column(name = "RESULT_MAP", length = Integer.MAX_VALUE)
@Type(type = "org.hibernate.type.SerializableToBlobType", parameters = @Parameter(name = SerializableToBlobType.CLASS_NAME, value = "java.lang.Object"))
public Map<String, byte[]> getResultMap() {
return resultMap;
}
@Lob
@Column(name = "INPUT_SPACE", length = Integer.MAX_VALUE, updatable = false)
@Type(type = "org.hibernate.type.MaterializedClobType")
public String getInputSpace() {
return inputSpace;
}
@Lob
@Column(name = "OUT_SPACE", length = Integer.MAX_VALUE, updatable = false)
@Type(type = "org.hibernate.type.MaterializedClobType")
public String getOutputSpace() {
return outputSpace;
}
@Lob
@Column(name = "GLOBAL_SPACE", length = Integer.MAX_VALUE, updatable = false)
@Type(type = "org.hibernate.type.MaterializedClobType")
public String getGlobalSpace() {
return globalSpace;
}
@Lob
@Column(name = "USER_SPACE", length = Integer.MAX_VALUE, updatable = false)
@Type(type = "org.hibernate.type.MaterializedClobType")
public String getUserSpace() {
return userSpace;
}