我有一段维护代码,应该在某些时间点向某些用户授予选择特权:
grant select on A_DB.A_TABLE to READ_ONLY_USER;
我想对所有表执行此操作。我可以select * from tab
在Oracle或show tables
MySQL中使用它来获取完整列表,然后像这样继续前进。
但是由于我已经有了javax.persistence.EntityManager
对象,所以我想知道是否还有另一种方法来获取所有映射的实体,经理知道(我正在使用Hibernate进行内部编程)。
我可以通过两种方式获取所有映射的实体及其对应的SQL表(可能还有其他)。
最直接的是,是否可以使用Hibernate Configuration对象:
for(Iterator it = config.getClassMappings(); it.hasNext();){
PersistentClass pc = (PersistentClass) it.next();
System.out.println(pc.getEntityName() + "\t" + pc.getTable().getName());
}
另外,您可以进行更多的转换,并从SessionFactory中获得相同的信息:
Map<String, ClassMetadata> map = (Map<String, ClassMetadata>) sessionFactory.getAllClassMetadata();
for(String entityName : map.keySet()){
SessionFactoryImpl sfImpl = (SessionFactoryImpl) sessionFactory;
String tableName = ((AbstractEntityPersister)sfImpl.getEntityPersister(entityName)).getTableName();
System.out.println(entityName + "\t" + tableName);
}
问题内容: 为了验证我收到的数据,我需要确保该长度不会超过数据库列的长度。现在,所有长度信息都存储在Hibernate映射文件中,是否可以通过编程方式访问此信息? 问题答案: 您可以实现,但这并不容易。您可能想要在启动时执行以下操作,并存储值的静态缓存。有很多特殊情况要处理(继承等),但它应适用于简单的单列映射。我可能遗漏了一些instanceof和null检查。
我有MyEntity类: 在@RestController中有2个@GetMapping方法。第一个: 第二个: 需要提供: 1.@GetMap返回MyEntity类中描述的实体。 2.@GetMap("url")返回实体,就像它的一个字段带有@JsonIgnore一样。 更新: 例如,当我返回我的实体时,客户端将得到: 我想在同一时间使用相同的ENTITY有机会根据URL发送给客户端: 1. 2
我有多个数组映射。 我想从多个地图中获取重复地图键的列表。 例如 除了遍历所有地图键,检查集合是否包含键,如果不将键添加到集合中,我想不出任何更干净的方法。有没有办法通过streams来实现这一点?
问题内容: 使用来获取Cookie 似乎很简单,它似乎将Cookie存储在其他位置。 我做了一些研究,然后从对象中获取了一些Cookie 。但是,其中不包含: 奇怪的是,ios 9中还有一个类负责管理中的cookie ,但是,该类不包含用于检索cookie数据的公共方法: 是否有解决方法来获取Cookie数据? 问题答案: 最后,对于登陆iOS的11。 https://developer.appl
问题内容: 我想知道是否有一种方法可以获取java中某个类的所有私有字段及其类型。 例如,假设我有一堂课 现在,我想获得的所有私有字段(,,类)(如果不知道所有领域前期的名称),并检查它们的类型。 问题答案: 有可能获得与方法的所有字段的。然后,您必须检查每个字段的修饰符以查找私有字段: 请注意,这不会返回继承的字段。 最终,您可以使用Field.getType()方法获得字段的类型。
现在,我想获取类的所有私有字段(、、)(事先不知道所有字段的名称)并检查它们的类型。