场景是我正在调试vs2010中的一些C#代码.我在一个断点处停下来.我走进一个方法.当前行以黄色突出显示(我认为默认情况下).我在踏入方法之前离开的线现在具有浅灰色背景.如果你有一个黑暗的文字,不错,但我有白色文字.完全看不懂.
所以,我想改变它,但它叫什么?
我有一个JPA/Hibernate数据模型,我使用Hibernate hbm2ddl工具生成数据库DDL.我有一些字符串应该是CHAR,一些字符串可能是数据库中的VARCHAR.我想尽量减少DDL的手工编辑(我意识到有些必须发生).
有谁知道我应该怎么做?我意识到我可以通过被黑客攻击的方言制作所有的Strings VARCHARS或CHARS,但这并不是数据库中总是适用的.
我希望能够使用注释或aop执行此操作,避免在我的类中自定义列定义文本.
谢谢.
我正在使用自定义的Hibernate类型AbstractSingleColumnStandardBasicType
来自动将SQL UDT转换为Java类型。SQL使用数据库函数来构造和序列化BLOB和/或CLOB中的列数据,我想向用户隐藏该数据。因此,它们不必用@ColumnTransformer(read="_serializer(column_name)", write="_constructor(?)")
在每个列上。
我已经使用BLOB SqlTypeDescriptor
和自定义JavaTypeDescriptor
进行了类型化,以在JDBC级别进行转换,但是如何让我的自定义类型将列和参数包装在适当的SQL函数中呢?我找不到任何描述这样的东西。
编辑:为了更具体一点,ST_GEOMETRY
必须通过数据库函数(ST_LineFromText
)或定义的UDT构造函数()构建此UDT(SDE ST_LineString
)。同样,要从数据库中读取它们,必须将它们“导出”为某种格式(ST_AsText
),以供Java读取。在这种情况下,无法正常使用读取类型字段的方法。
所以:
create table geo_lines (
line SDE.ST_GEOMETRY
);
Run Code Online (Sandbox Code Playgroud)
和:
@Entity
@Table(name="geo_lines")
public class GeoLine {
@Column(name="line")
@Type(type="org.example.MyStLineType")
// i'm wanting to be able to omit the following annotation
@ColumnTransformer(read="SDE.ST_AsText(line)",
write="SDE.ST_ST_LineFromText(?, 3857)")
private Polyline line;
}
Run Code Online (Sandbox Code Playgroud)
因此,我真正需要用户输入的是数字(3857
在这种情况下),它可以作为参数传递,而其他所有内容都是任何行的标准样板。对其他类型(如点,多边形等)重复上述步骤。