Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Spring中获得表字段名的对象属性映射?

如何在Spring中获得表字段名的对象属性映射?
EN

Stack Overflow用户
提问于 2022-10-04 15:46:43
回答 3查看 109关注 0票数 2

我有一个带有自定义表和字段名的带注释的实体对象,用于Spring (不是JPA)。小象:

代码语言:javascript
运行
AI代码解释
复制
@Data
@Table("custom_record_table")
public class Record {
    @Id
    @Column("id_field")
    Long id;
    String name;
    @Column("name_short")
    String shortName;
}

我想要一张田里的地形图。小象:

代码语言:javascript
运行
AI代码解释
复制
{"id":"id_field","name":"name","shortName":"name_short"}

得到它的正确方法是什么?

对于上下文:我计划使用这个映射来构造查询,以加载多个参考文献以及主表。现在,我使用普通反射API扫描字段及其注释,得到了这个映射。很管用,但我想发明一辆自行车.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-10-06 23:12:18

你要找的是JdbcMappingContext。它应该是一个bean,所以您可以简单地在您的应用程序中自动使用它。

代码语言:javascript
运行
AI代码解释
复制
JdbcMappingContext mappingContext // ... autowired

Map<String, String> propToCols = new HashMap<>();
mappingContext.getRequiredPersistentEntity(Record.class).forEach(
    rpp -> propToCols.put(rpp.getName(), rpp.getColumnName().getReference() 
);

我是在没有IDE的情况下编写这篇文章的,这样它就会包含错误。当你有参考资料和其他东西的时候,也有一些特别的事情要考虑,但是这应该会让你开始。

票数 1
EN

Stack Overflow用户

发布于 2022-10-04 15:59:18

如果在记录中创建静态函数会怎么样?

代码语言:javascript
运行
AI代码解释
复制
@Data
@Table("custom_record_table")

public class Record 
{
    @Id
    @Column("id_field")
    Long id;
    String name;
    @Column("name_short")
    String shortName;

   static Map<String, String> getMap()
   {
       return Map.ofEntries  ( 
                 Map.entry("id", "id_field"),
                 Map.entry("name", "name"),
                 Map.entry("shortName","name_short")
              );
   }

  /* returning map would look like: 
     {"id":"id_field","name":"name","shortName":"name_short"} */
}

请注意,这将为您提供一个Map,在该Map中,您可以通过所知道的字段键检索字段值。

map.get("id")将返回id_field,等等。当您需要知道引用字段的名称时,这可能很有用。

但是,如果您只想要一个字符串表示,甚至是一个JSON,最好从这些字段创建一个JSON。

无论如何,如果我正确理解,您需要一个Map对象,所以第一个解决方案应该这样做。

票数 0
EN

Stack Overflow用户

发布于 2022-10-04 16:13:32

您希望将对象转换为JSON。它们是不同的图书馆。人们最喜欢杰克逊图书馆

代码语言:javascript
运行
AI代码解释
复制
import com.fasterxml.jackson.databind.ObjectMapper; 
import com.fasterxml.jackson.databind.ObjectWriter; 

ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = ow.writeValueAsString(object);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73954658

复制
相关文章
JavaScript获得对象属性个数的方法
//扩展对象的count方法 Object.prototype.count = ( Object.prototype.hasOwnProperty(‘__count__’) ) ? fun
就只是小茗
2018/03/07
2K0
Spring 对象XML映射
我们都知道对象关系映射(ORM),用来将Java对象和关系型数据库的数据进行映射。Spring也提供了一套类似的映射机制,用来将Java对象和XML文件进行映射。这就是Spring的对象XML映射功能,有时候也成为XML的序列化和反序列化。
乐百川
2022/05/05
1.3K0
Spring框架中 Bean对象属性值的注入
注意:如果一个Bean对象同时存在set注入和构造注入两种方法,Spring在为Bean对象属性赋值时,会先使用set注入方式为属性赋值,再使用构造注入为Bean对象属性赋值。
运维搬砖
2018/12/26
4.1K0
如何在 TypeScript 中为对象动态添加属性?
在 TypeScript 中,我们经常需要在运行时动态添加属性到对象上。这是因为 TypeScript 是一种静态类型语言,类型系统在编译时会检查代码的类型安全性,所以在编译时我们无法确定对象上将要添加哪些属性。在本文中,我们将讨论如何在 TypeScript 中为对象动态添加属性,以及这样做的一些注意事项。
网络技术联盟站
2023/06/07
11.9K0
MySQL 数据库利用alter语句修改表字段属性实例演示,如何拓展表字段长度,sql语句修改表字段名称和类型
-- 创建表 create table field_changes ( name char); desc field_changes; 给表添加字段。 alter table field_changes add code char(50); desc field_changes; 给表删除字段。 alter table field_changes drop code; desc field_changes; 修改字段类型,扩充字段长度。 alter table field_changes mod
小蓝枣
2021/12/01
3.3K0
MySQL 数据库利用alter语句修改表字段属性实例演示,如何拓展表字段长度,sql语句修改表字段名称和类型
如何从jdbc中获取数据库建表语句信息(表字段名称/表字段类型/表字段注释信息/表字段长度等等)
* 如何从jdbc中获取数据库建表语句信息(表字段名称/表字段类型/表字段注释信息/表字段长度等等) * 1,表字段名称 * 2,表字段类型 * 3,表字段注释信息
全栈程序员站长
2022/10/04
4.9K0
Spring Data Commons对象映射基础
本节涵盖 Spring Data 对象映射、对象创建、字段和属性访问、可变性和不变性的基础知识。请注意,本节仅适用于不使用底层数据存储(如 JPA)的对象映射的 Spring Data 模块。此外,请务必查阅特定于存储的部分以获取特定于存储的对象映射,例如索引、自定义列或字段名称等。
IT胶囊
2021/09/17
1.5K0
Spring Data Commons对象映射基础
Spring Data JPA 映射VO/DTO对象
---- 简介 在项目开发中,时常需要根据业务需求来映射VO/DTO对象(这两个概念理解感觉很模糊,本文将简单介绍以Spring Data JPA的方式处理实体类映射 HQL方式 public interface MusicTypeRepository extends JpaRepository<MusicType,Integer> { @Query("select new cn.srblog.springbootcurd.vo.StudentTypeInfoVo(count(s.id),
sr
2019/05/23
6K1
Python 爬虫使用 Selenium 如何在 WebElement 获得属性
我们需要在 Doc 中选择我们的元素,这个叫做选择器,通常来说 HTML 很多不同的选择器。
HoneyMoose
2023/09/19
1650
Python 爬虫使用 Selenium 如何在 WebElement 获得属性
如何在 Spring Boot 中 读写数据
写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下! GitHub地址:https://github.com/abel-max/Java-Study-Note/tree/master
用户5546570
2020/09/28
15.9K0
如何在 Spring Boot 中 读写数据
java反射之Field用法(获取对象的字段名和属性值)
Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属性信息,功能包括:
军军不吃鸡
2022/10/26
14.9K0
Spring 中的属性赋值
如果使用配置文件中的值,需要指定配置文件的位置,使用 context:property-placeholder 标签。
wsuo
2020/07/30
1.8K0
Mockito入门:如何在Spring中Mock部分对象
随着分布式应用的开发逐渐成为标配,多个微服务团队合作来完成垂直业务的开发成为了一种常态。微服务使得团队可以专注于自己的业务逻辑,在和下游依赖和上游对接的团队聚焦好接口之后,就进入正式的开发。但是,每个团队的开发节奏往往不同,下游依赖所提供的服务有些时候不能在自测的时候提供稳定的服务。不仅是多个团队,单个团队中每个人所负责的模块之间也会存在依赖关系,也就同样存在这样的问题。
眯眯眼的猫头鹰
2019/09/30
11.1K0
mybatis框架常见注解(持续补充)
绝大部分注解,在xml映射文件中都有元素与之对应,但是不是所有。此外在mybatis-spring中提供了@Mapper注解和@MapperScan注解,用于和spring进行整合。
小尘要自信
2023/10/10
3000
小师妹问我:Mybatis常见注解有哪些?
Mybatis中的注解基本上都在org.apache.ibatis.annotations目录下:
田维常
2020/12/30
1.3K0
java如何获得数据库表中各字段的字段名
public class TestDemo { public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://数据库IP地址:3306/数据库名称"; String user = "
ydymz
2018/09/10
3K0
Swift — 面向对象中类和对象的属性
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115585.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/10
2.6K0
MyBatis两张表字段名相同产生的问题
MyBatis两张表字段名相同, 会导致bean属性都映射为第一个表的列, 解决方法: 通过设置别名的方式让其产生区别,如 <select id="queryBySekillId" resultMap="successKilled"> select sk.seckill_id "seckill_id", sk.user_phone "user_phone", sk.state "state",
庞小明
2018/03/07
2.3K0
点击加载更多

相似问题

将对象映射到类属性(如接口)

21

Mysql表字段名

13

如何在Spring中映射JSON对象?

13

Spring中的对象映射

12

Spring中的对象映射?

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文