Sure it will.
Object myMutableType = x; entity.setType(myMutableType); // makes a copy of myMutableType with x value myMutableType.changeTo(y); (entity still has a copy that points to x rather than y) On Mon, Sep 8, 2014 at 9:02 AM, Hugi Thordarson <h...@karlmenn.is> wrote: > 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 >>>> >