Hibernate and String trim problem

  • Follow


Hi all,I use hibernate tools to create classes to store my db tables.I have a problem with strings. I need to trim values but I want to doit without to touch the automatically generated code...What can I do?Thanks all,DM
1
Reply diemme29 (9) 3/29/2007 11:12:06 AM

On 29.03.2007 13:12, DM wrote:> I use hibernate tools to create classes to store my db tables.> I have a problem with strings. I need to trim values but I want to do> it without to touch the automatically generated code...> What can I do?This is something you should do in application land, i.e. in your Java classes.  Hibernate just transfers data from the application to the DB.Kind regards	robert
0
Reply Robert 3/29/2007 11:15:19 AM


On 29 Mar, 13:15, Robert Klemme <shortcut...@googlemail.com> wrote:> On 29.03.2007 13:12, DM wrote:>> > I use hibernate tools to create classes to store my db tables.> > I have a problem with strings. I need to trim values but I want to do> > it without to touch the automatically generated code...> > What can I do?>> This is something you should do in application land, i.e. in your Java> classes.  Hibernate just transfers data from the application to the DB.>> Kind regards>>         robertI try to explain.I load a table on a HashMap (the key of the table = the key of themap) then I want to get the value from the map given the key.The problem is the key in the db is i.e. "LOG          " (the stringis filled with spaces...).If I call map.get("LOG") I don't found nothing... I've to callmap.get("LOG           "). This disturbs me...I've inserted a .trim() on the constructor of the generated class, butI wish to obtain the same result without touch it...I've to wrap the generated class or can I use a different method?Thanks,DM
0
Reply DM 3/29/2007 12:09:05 PM

DM wrote:> On 29 Mar, 13:15, Robert Klemme <shortcut...@googlemail.com> wrote:>> On 29.03.2007 13:12, DM wrote:>>>>> I use hibernate tools to create classes to store my db tables.>>> I have a problem with strings. I need to trim values but I want to do>>> it without to touch the automatically generated code...>>> What can I do?>> This is something you should do in application land, i.e. in your Java>> classes.  Hibernate just transfers data from the application to the DB.>>>> Kind regards>>>>         robert> > I try to explain.> I load a table on a HashMap (the key of the table = the key of the> map) then I want to get the value from the map given the key.> The problem is the key in the db is i.e. "LOG          " (the string> is filled with spaces...).> If I call map.get("LOG") I don't found nothing... I've to call> map.get("LOG           "). This disturbs me...> I've inserted a .trim() on the constructor of the generated class, but> I wish to obtain the same result without touch it...> > I've to wrap the generated class or can I use a different method?If you can change the data model implementation, consider using VARCHAR instead of CHAR for those columns.-- Lew
0
Reply Lew 3/29/2007 12:25:52 PM

On 29.03.2007 14:25, Lew wrote:> DM wrote:>> On 29 Mar, 13:15, Robert Klemme <shortcut...@googlemail.com> wrote:>>> On 29.03.2007 13:12, DM wrote:>>>>>>> I use hibernate tools to create classes to store my db tables.>>>> I have a problem with strings. I need to trim values but I want to do>>>> it without to touch the automatically generated code...>>>> What can I do?>>> This is something you should do in application land, i.e. in your Java>>> classes.  Hibernate just transfers data from the application to the DB.>>>>>> Kind regards>>>>>>         robert>>>> I try to explain.>> I load a table on a HashMap (the key of the table = the key of the>> map) then I want to get the value from the map given the key.>> The problem is the key in the db is i.e. "LOG          " (the string>> is filled with spaces...).>> If I call map.get("LOG") I don't found nothing... I've to call>> map.get("LOG           "). This disturbs me...>> I've inserted a .trim() on the constructor of the generated class, but>> I wish to obtain the same result without touch it...>>>> I've to wrap the generated class or can I use a different method?> > If you can change the data model implementation, consider using VARCHAR > instead of CHAR for those columns.Yeah, change the data in the DB.  Or, if access is read only, create a DB view that does the trimming and use that instead of the table.	robert
0
Reply Robert 3/29/2007 1:43:25 PM

On 29 Mar, 15:43, Robert Klemme <shortcut...@googlemail.com> wrote:> On 29.03.2007 14:25, Lew wrote:>>>> > DM wrote:> >> On 29 Mar, 13:15, Robert Klemme <shortcut...@googlemail.com> wrote:> >>> On 29.03.2007 13:12, DM wrote:>> >>>> I use hibernate tools to create classes to store my db tables.> >>>> I have a problem with strings. I need to trim values but I want to do> >>>> it without to touch the automatically generated code...> >>>> What can I do?> >>> This is something you should do in application land, i.e. in your Java> >>> classes.  Hibernate just transfers data from the application to the DB.>> >>> Kind regards>> >>>         robert>> >> I try to explain.> >> I load a table on a HashMap (the key of the table = the key of the> >> map) then I want to get the value from the map given the key.> >> The problem is the key in the db is i.e. "LOG          " (the string> >> is filled with spaces...).> >> If I call map.get("LOG") I don't found nothing... I've to call> >> map.get("LOG           "). This disturbs me...> >> I've inserted a .trim() on the constructor of the generated class, but> >> I wish to obtain the same result without touch it...>> >> I've to wrap the generated class or can I use a different method?>> > If you can change the data model implementation, consider using VARCHAR> > instead of CHAR for those columns.>> Yeah, change the data in the DB.  Or, if access is read only, create a> DB view that does the trimming and use that instead of the table.>>         robertI work on a big project on a db with more than 40 tables anddistributed on many clients... changing the db is not a solution.The best solution right now is to wrap java String in TrimString andusing this class instead of Strings... but the "tablename.hbm.xml"file is automatically generated mapping db "char" into java String.Can I map automatically "char" into TrimString?Thanks,DM
0
Reply DM 3/29/2007 2:00:30 PM

On 29.03.2007 16:00, DM wrote:
> On 29 Mar, 15:43, Robert Klemme <shortcut...@googlemail.com> wrote:
>> On 29.03.2007 14:25, Lew wrote:
>>
>>
>>
>>> DM wrote:
>>>> On 29 Mar, 13:15, Robert Klemme <shortcut...@googlemail.com> wrote:
>>>>> On 29.03.2007 13:12, DM wrote:
>>>>>> I use hibernate tools to create classes to store my db tables.
>>>>>> I have a problem with strings. I need to trim values but I want to do
>>>>>> it without to touch the automatically generated code...
>>>>>> What can I do?
>>>>> This is something you should do in application land, i.e. in your Java
>>>>> classes.  Hibernate just transfers data from the application to the DB.
>>>>> Kind regards
>>>>>         robert
>>>> I try to explain.
>>>> I load a table on a HashMap (the key of the table = the key of the
>>>> map) then I want to get the value from the map given the key.
>>>> The problem is the key in the db is i.e. "LOG          " (the string
>>>> is filled with spaces...).
>>>> If I call map.get("LOG") I don't found nothing... I've to call
>>>> map.get("LOG           "). This disturbs me...
>>>> I've inserted a .trim() on the constructor of the generated class, but
>>>> I wish to obtain the same result without touch it...
>>>> I've to wrap the generated class or can I use a different method?
>>> If you can change the data model implementation, consider using VARCHAR
>>> instead of CHAR for those columns.
>> Yeah, change the data in the DB.  Or, if access is read only, create a
>> DB view that does the trimming and use that instead of the table.
>>
>>         robert
> 
> I work on a big project on a db with more than 40 tables and
> distributed on many clients... changing the db is not a solution.

Adding a view doesn't really hurt.

> The best solution right now is to wrap java String in TrimString and
> using this class instead of Strings... but the "tablename.hbm.xml"
> file is automatically generated mapping db "char" into java String.
> Can I map automatically "char" into TrimString?

Maybe.  You would have to hack hibernate or dialects I presume.

Regards

	robert
0
Reply Robert 3/29/2007 2:48:54 PM

On 29 Mar, 16:48, Robert Klemme <shortcut...@googlemail.com> wrote:
> On 29.03.2007 16:00, DM wrote:
>
>
>
> > On 29 Mar, 15:43, Robert Klemme <shortcut...@googlemail.com> wrote:
> >> On 29.03.2007 14:25, Lew wrote:
>
> >>> DM wrote:
> >>>> On 29 Mar, 13:15, Robert Klemme <shortcut...@googlemail.com> wrote:
> >>>>> On 29.03.2007 13:12, DM wrote:
> >>>>>> I use hibernate tools to create classes to store my db tables.
> >>>>>> I have a problem with strings. I need to trim values but I want to do
> >>>>>> it without to touch the automatically generated code...
> >>>>>> What can I do?
> >>>>> This is something you should do in application land, i.e. in your Java
> >>>>> classes.  Hibernate just transfers data from the application to the DB.
> >>>>> Kind regards
> >>>>>         robert
> >>>> I try to explain.
> >>>> I load a table on a HashMap (the key of the table = the key of the
> >>>> map) then I want to get the value from the map given the key.
> >>>> The problem is the key in the db is i.e. "LOG          " (the string
> >>>> is filled with spaces...).
> >>>> If I call map.get("LOG") I don't found nothing... I've to call
> >>>> map.get("LOG           "). This disturbs me...
> >>>> I've inserted a .trim() on the constructor of the generated class, but
> >>>> I wish to obtain the same result without touch it...
> >>>> I've to wrap the generated class or can I use a different method?
> >>> If you can change the data model implementation, consider using VARCHAR
> >>> instead of CHAR for those columns.
> >> Yeah, change the data in the DB.  Or, if access is read only, create a
> >> DB view that does the trimming and use that instead of the table.
>
> >>         robert
>
> > I work on a big project on a db with more than 40 tables and
> > distributed on many clients... changing the db is not a solution.
>
> Adding a view doesn't really hurt.
>
> > The best solution right now is to wrap java String in TrimString and
> > using this class instead of Strings... but the "tablename.hbm.xml"
> > file is automatically generated mapping db "char" into java String.
> > Can I map automatically "char" into TrimString?
>
> Maybe.  You would have to hack hibernate or dialects I presume.
>
> Regards
>
>         robert

I've found... on hibernate.org / Hibernate Users Faq / Tips and Tricks

How can I trim spaces from String data persisted to a CHAR column?
Use a UserType.

....doh... :-)

DM

0
Reply DM 3/29/2007 3:22:38 PM

7 Replies
555 Views

(page loaded in 0.129 seconds)

Similiar Articles:













7/24/2012 4:07:22 AM


Reply: