That won't help with mutable types, since modifying them will not use the setter method.
- hugi On 8.9.2014, at 12:58, Mike Kienenberger <mkien...@gmail.com> wrote: > I think it would be difficult to enforce, even if we wanted to > disallow it, since any non-primitive could be mutable. > > What I might do is to change my templates so that certain types, like > Date and byte[], are automatically cloned in the setter methods, > though. > > > On Mon, Sep 8, 2014 at 8:54 AM, Michael Gentry <mgen...@masslight.net> wrote: >> I think everyone is getting wrapped up around Dates. My general question >> was about mutable types. >> >> byte[] data = { 1, 2, 3, 4 }; >> person.setData(data); >> data[0] = 5; >> for (int i = 0; i < person.getData().length; i++) >> System.out.println("Data[" + i + "] = " + person.getData()[i]); >> >> Data[0] = 5 >> >> Data[1] = 2 >> >> Data[2] = 3 >> >> Data[3] = 4 >> >> Again, modifying the original value changes what is stored internally by >> Cayenne. >> >> Thanks, >> >> mrg >> >> >> On Mon, Sep 8, 2014 at 3:39 AM, Aristedes Maniatis <a...@maniatis.org> wrote: >> >>> And https://github.com/ThreeTen/threetenbp for Java 6/7 users. >>> >>> Ari >>> >>> >>> On 8/09/2014 4:42pm, Andrus Adamchik wrote: >>>> Also Java 8 Date and Time if Java 8 is an option: >>>> >>>> >>> http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html >>>> >>>> Andrus >>>> >>>> On Sep 8, 2014, at 4:17 AM, John Huss <johnth...@gmail.com> wrote: >>>> >>>>> Sure, use Joda time. >>>>> On Sep 6, 2014 8:15 PM, "Michael Gentry" <mgen...@masslight.net> wrote: >>>>> >>>>>> Is that a realistic option? >>>>>> >>>>>> >>>>>> On Sat, Sep 6, 2014 at 6:55 PM, John Huss <johnth...@gmail.com> wrote: >>>>>> >>>>>>> My thoughts are: don't use Date. >>>>>>> On Sep 6, 2014 4:58 PM, "Michael Gentry" <mgen...@masslight.net> >>> wrote: >>>>>>> >>>>>>>> Should Cayenne copy/clone mutable objects, such as Date? >>>>>>>> >>>>>>>> For example, if I modify a date after setting it in a Cayenne object >>>>>>>> (person), it modifies the value stored by Cayenne: >>>>>>>> >>>>>>>> SimpleDateFormat timeFormat = new SimpleDateFormat ("yyyy-MM-dd"); >>>>>>>> Date d1 = timeFormat.parse("2014-02-01"); >>>>>>>> person.setStartDate(d1); >>>>>>>> d1.setYear(2013 - 1900); // Date hackery >>>>>>>> System.out.println("Start Date = " + person.getStartDate()); >>>>>>>> >>>>>>>> This outputs: >>>>>>>> >>>>>>>> Start Date = Fri Feb 01 00:00:00 EST 2013 >>>>>>>> >>>>>>>> I've never actually experienced an issue with Cayenne not copying a >>>>>>>> Date/etc, but was wondering your thoughts on this. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> mrg >>>>>>>> >>>>>>> >>>>>> >>>> >>> >>> -- >>> --------------------------> >>> Aristedes Maniatis >>> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A >>>