显然,可以创建一个TypeDef来根据方言切换实现。
package org.hibernate.type;
import org.hibernate.type.descriptor.java.JavaTypeDescriptor;
import org.hibernate.type.descriptor.java.UUIDTypeDescriptor;
import org.hibernate.type.descriptor.sql.SqlTypeDescriptor;
import org.hibernate.type.descriptor.sql.VarcharTypeDescriptor;
import java.io.IOException;
import java.util.Properties;
public class UUIDCustomType extends AbstractSingleColumnStandardBasicType {
private static final long serialVersionUID = 902830399800029445L;
private static final SqlTypeDescriptor SQL_DESCRIPTOR;
private static final JavaTypeDescriptor TYPE_DESCRIPTOR;
static {
Properties properties = new Properties();
try {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
properties.load( loader.getResourceAsStream( "database.properties" ) );
}
catch ( IOException e ) {
throw new RuntimeException( "Could not load properties!", e );
}
String dialect = properties.getProperty( "dialect" );
if ( dialect.equals( "org.hibernate.dialect.PostgreSQLDialect" ) ) {
SQL_DESCRIPTOR = PostgresUUIDType.PostgresUUIDSqlTypeDescriptor.INSTANCE;
} else if(dialect.equals("org.hibernate.dialect.H2Dialect")) {
SQL_DESCRIPTOR = VarcharTypeDescriptor.INSTANCE;
} else {
throw new UnsupportedOperationException("Unsupported database!");
}
TYPE_DESCRIPTOR = UUIDTypeDescriptor.INSTANCE;
}
public UUIDCustomType() {
super(SQL_DESCRIPTOR, TYPE_DESCRIPTOR);
}
@Override
public String getName() {
return "uuid-custom";
}
}
我的问题是hibernate似乎没有识别它,值得注意的是,有一次我将“uuid-custom”作为类型中的静态字符串,并直接在@type
中引用它,所以它并不是实际上不在类路径上。
我不确定是否有其他方法可以让它工作,但是将它添加到包中的typedef中-info.java
可以解决这个问题
@TypeDef(
name = UUIDCustomType.UUID,
defaultForType = UUID.class,
typeClass = UUIDCustomType.class
)
package com.xenoterracide.rpf.model;
import org.hibernate.annotations.TypeDef;
import org.hibernate.type.UUIDCustomType;
import java.util.UUID;
问题内容: 我想在定义类时注册一个类的实例。理想情况下,以下代码可以解决问题。 不幸的是,此代码生成错误。 发生的事情是在我尝试实例化a的行上,但装饰器尚未返回,因此它不存在。 是否使用元类解决了这个问题? 问题答案: 是的,元类可以做到这一点。元类的方法返回该类,因此只需在返回之前注册该类。 前面的示例在Python 2.x中有效。在Python 3.x中,的定义略有不同(虽然未更改,但未显示-
我想注册一个Avro模式,它在模式注册表上引用另一个Avro模式。 首先,我注册了以下基本Avro模式: 如果我尝试注册以下Avro架构,该架构引用“客户端”属性中的基本架构,则操作失败并出现错误422 这个问题似乎与指定自定义类型字段有关。 任何想法如何添加自定义类型,同时注册相关的模式在模式注册表?
本文向大家介绍WordPress 注册自定义帖子类型,包括了WordPress 注册自定义帖子类型的使用技巧和注意事项,需要的朋友参考一下 示例 假设您有一个图书馆网站,并且想要一个名为Books的自定义帖子类型。可以注册为 如此简单,您现在就注册了一个自定义帖子类型。 该代码段可以放在主题functions.php文件中,也可以放在插件结构中。
所以很明显,添加类型转换器还有其他方式,我通过显式配置转换服务来搞砸了?有没有一种方法可以注册自定义类型转换器而不踩到其他转换器?
我是新来的Laravel。我有两种不同的用户类型:老师和学生。教师在网站注册表格中注册账户,但学生注册由windows应用程序提供。所以我必须为这个应用程序提供一个API。默认Laravel认证是足够的教师注册,但我可以使用相同的AuthController API注册?我不需要视图或重定向到网站。
我已经为log4j2编写了一个自定义触发策略,该策略将被回滚。在每小时/天/你的工作时间间隔结束时,按照本SO帖子的建议记录文件。 虽然我遵循基于时间的触发策略约定(命名等),但我无法看到我的策略被实例化和使用。 解决方案由3个java文件和一个maven文件组成,可在github上获得 在这里,您可以从政策本身找到主要内容: log4j2。xml文件: 编辑: 在调试过程中,我了解到在log4j