I'm making a database migration tool and am dealing with a source database that's very unwieldy. It's basically one giant table that has upwards of 40-50 columns. However not all of these columns are useful to me. I only want maybe a dozen or so of them. Once I get that data I'm making requests to a web service that will handle everything on the destination end of migration.
My options are basically creating queries manually to only select the columns I want, or make an Entity that maps the columns I want. I'm not really that familiar with using JPA so I'm not sure if this is possible or ok.
Can I do something like
@Entity
class SomeEntity{
@Column(name = "ColumnA")
private String columnA;
@Column(name = "ColumnB")
private String columnB;
}
if the columns in the database are, for example
Column A | Column B | Column C | Column D
Will EclipseLink map only the columns I annotate or will it complain trying to map columns in the db to fields that don't exist in my Entity? I know @Transient will mark fields that should not be persisted. But I want to do the opposite, and ignore database columns and only partially map the table to a class.